@uipath/case-tool 1.202.1 → 1.203.0-preview.180
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.
- package/dist/THIRD-PARTY-NOTICES.md +75 -251
- package/dist/{authoring-vpa82rhb.js → authoring-kngaggwm.js} +42 -4
- package/dist/{case-api-63ncrr7n.js → case-api-v6cjyrfw.js} +8 -8
- package/dist/case-bindings-service-1wxfghzd.js +240 -0
- package/dist/case-debug-studio-web-service-tpfm4r66.js +133 -0
- package/dist/case-format-service-q345a2fd.js +84 -0
- package/dist/{case-pack-service-72ymxkvq.js → case-pack-service-29rza2q2.js} +61 -11
- package/dist/{case-validate-service-4fzrq8ee.js → case-validate-service-cqw3tz9y.js} +1422 -40
- package/dist/{connector-enrichment-service-wqdd0561.js → connector-enrichment-service-qa26zsjg.js} +20 -20
- package/dist/{connector-lookup-service-cwm3bk3a.js → connector-lookup-service-8v4qawd5.js} +7 -7
- package/dist/{connector-task-spec-pn5vqw89.js → connector-task-spec-q9v9vjd2.js} +24 -24
- package/dist/{de-MUJPA4EB-209jpeqe.js → de-MUJPA4EB-dpg7t2rw.js} +3 -3
- package/dist/{debug-service-rgh5q6v7.js → debug-service-8x087xxt.js} +2 -2
- package/dist/{index-71zc7k6y.js → embedded-file-reader-0sjt4nkj.js} +96 -16641
- package/dist/{en-TBNO2WUV-rfe87pgh.js → en-BWGKA5OE-1qkvb9rn.js} +2 -2
- package/dist/{en-GN2ZGWUE-03z2df4k.js → en-FBPVNKFN-dqt573xn.js} +5 -3
- package/dist/{enrichment-service-6qd2ekgp.js → enrichment-service-7vbxcwge.js} +7 -7
- package/dist/{es-7SE7HX2X-qda7whn6.js → es-7SE7HX2X-8yh1aj2y.js} +3 -3
- package/dist/{es-MX-2MYFZU7X-6v0q5rbn.js → es-MX-2MYFZU7X-3rek4r73.js} +3 -3
- package/dist/first-party-service-srxaftkn.js +27 -0
- package/dist/{fr-MDFKNZ4C-qmypp92m.js → fr-MDFKNZ4C-h4a122k9.js} +3 -3
- package/dist/{index-j63n7z6x.js → index-38apv2p1.js} +6 -4
- package/dist/{index-kwxe1vep.js → index-fz4ttsde.js} +16 -4
- package/dist/index-jxj2jz45.js +16742 -0
- package/dist/index-kmp9fmhb.js +25 -0
- package/dist/index.js +10 -10
- package/dist/{input-reader-8kdvqfaf.js → input-reader-pnh948bq.js} +1 -1
- package/dist/{ja-UTQEAP34-hvyf683h.js → ja-UTQEAP34-8e0q6swp.js} +3 -3
- package/dist/{known-types-dec5kvwh.js → known-types-mn8xn36b.js} +4 -4
- package/dist/{ko-AXCHW2OK-pkwdcbmx.js → ko-AXCHW2OK-askct7f6.js} +3 -3
- package/dist/{node-strategy-0267x5e5.js → node-strategy-gc4sg6a2.js} +4 -4
- package/dist/{node-sync-service-nyzvsxte.js → node-sync-service-y471a8jm.js} +11 -11
- package/dist/{packager-tool-2rqwt6k1.js → packager-tool-052kvydg.js} +1 -1
- package/dist/packager-tool-53w8skv5.js +262 -0
- package/dist/{packager-tool-gqa97ecv.js → packager-tool-61hxhgeg.js} +1 -1
- package/dist/{packager-tool-11x9d29d.js → packager-tool-6vm5fd0w.js} +6 -6
- package/dist/{packager-tool-r87gxwqa.js → packager-tool-7q6z6npd.js} +12 -12
- package/dist/packager-tool-83qnybab.js +1564 -0
- package/dist/{packager-tool-ph7m6q8q.js → packager-tool-8q7vzh65.js} +5 -4
- package/dist/{packager-tool-g27rwyhq.js → packager-tool-adcaxdhs.js} +15 -5
- package/dist/{packager-tool-6q9vpaye.js → packager-tool-cg2j4rma.js} +8 -8
- package/dist/{packager-tool-e65xt669.js → packager-tool-cr03q3q4.js} +213 -51
- package/dist/packager-tool-d4sjk46c.js +88 -0
- package/dist/{packager-tool-4mna26cc.js → packager-tool-d88rqwk8.js} +5 -3
- package/dist/packager-tool-dd8bq6az.js +8462 -0
- package/dist/packager-tool-gdtpsdn7.js +342 -0
- package/dist/{packager-tool-k4edys72.js → packager-tool-hrdan5ms.js} +1 -1
- package/dist/{packager-tool-73266j0h.js → packager-tool-hz1mz8fs.js} +1 -1
- package/dist/{packager-tool-c23zrhj8.js → packager-tool-jysvpt8p.js} +2 -2
- package/dist/{packager-tool-m9yxkjc5.js → packager-tool-kkxhc0fp.js} +2905 -817
- package/dist/{packager-tool-8m22sr4j.js → packager-tool-kpcjnxd1.js} +269 -23
- package/dist/{packager-tool-s44cpykq.js → packager-tool-n6vfz7c3.js} +22 -16
- package/dist/{packager-tool-axgsbgv9.js → packager-tool-sqd89cn1.js} +10 -13
- package/dist/{packager-tool-fh1f8bv4.js → packager-tool-tatg1kz2.js} +10 -9
- package/dist/{packager-tool-51a9f6yz.js → packager-tool-wefb1zw3.js} +1 -1
- package/dist/{packager-tool-3fm9yhgv.js → packager-tool-x2hktw5m.js} +11 -11
- package/dist/{packager-tool-dqs5qy9s.js → packager-tool-yrsrzz1a.js} +134 -19
- package/dist/packager-tool.js +5 -1501
- package/dist/{project-artifacts-a69j3g1q.js → project-artifacts-8snev67g.js} +1 -1
- package/dist/{pt-3DIO5QWG-hb763vct.js → pt-3DIO5QWG-59b3f4bc.js} +3 -3
- package/dist/{pt-BR-Y6K6XHXK-37a932vp.js → pt-BR-Y6K6XHXK-mp3hwhw1.js} +3 -3
- package/dist/{resourcesSyncService-gnmpre85.js → resourcesSyncService-8t5qdtvt.js} +20 -20
- package/dist/{ro-BWR3ONRR-jmap5ajd.js → ro-BWR3ONRR-vzx3hy8a.js} +3 -3
- package/dist/ru-WBLQ5B2U-s4em88p0.js +10 -0
- package/dist/sdd-lookup-x08j9g9m.js +48 -0
- package/dist/{strict-case-rules-303vjvas.js → strict-case-rules-x6t0vb40.js} +141 -109
- package/dist/strict-sdd-audit-8e2fh9jg.js +2520 -0
- package/dist/tool.js +9 -9
- package/dist/{tr-5IIHSFW5-stsb3dar.js → tr-5IIHSFW5-hw4cewew.js} +3 -3
- package/dist/{trigger-enrichment-service-52h9fjqd.js → trigger-enrichment-service-n622a230.js} +24 -24
- package/dist/{zh-CN-R2KU4U5L-q4yhc33t.js → zh-CN-R2KU4U5L-tc1hat59.js} +3 -3
- package/dist/{zh-TW-GNKMELBF-r4ay2475.js → zh-TW-GNKMELBF-j674515r.js} +3 -3
- package/package.json +3 -2
- package/dist/case-debug-studio-web-service-45rb4ej9.js +0 -335
- package/dist/packager-tool-134mvmcm.js +0 -3040
- package/dist/packager-tool-ty1t2byf.js +0 -27
- package/dist/ru-WBLQ5B2U-8r3c7v6d.js +0 -10
- package/dist/strict-sdd-audit-qdmc9e1y.js +0 -1024
package/dist/packager-tool.js
CHANGED
|
@@ -2,1511 +2,15 @@ import {
|
|
|
2
2
|
toolsFactoryRepository
|
|
3
3
|
} from "./packager-tool-sfkyb4kz.js";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
CaseToolFactory,
|
|
6
|
+
registerCaseBpmnCompiler
|
|
7
|
+
} from "./packager-tool-83qnybab.js";
|
|
8
|
+
import"./packager-tool-b098y4a2.js";
|
|
7
9
|
import {
|
|
8
10
|
__require,
|
|
9
11
|
__toESM
|
|
10
12
|
} from "./packager-tool-1yh8g550.js";
|
|
11
13
|
|
|
12
|
-
// ../packager/packager-core/dist/index.js
|
|
13
|
-
class Path {
|
|
14
|
-
static normalize(path) {
|
|
15
|
-
return path.replace(/\\/g, "/").replace(/\/+/g, "/");
|
|
16
|
-
}
|
|
17
|
-
static join(...segments) {
|
|
18
|
-
return Path.normalize(segments.filter((s) => s.length > 0).join("/"));
|
|
19
|
-
}
|
|
20
|
-
static dirname(path) {
|
|
21
|
-
const normalized = Path.normalize(path).replace(/\/$/, "");
|
|
22
|
-
if (normalized === "")
|
|
23
|
-
return ".";
|
|
24
|
-
const lastSlash = normalized.lastIndexOf("/");
|
|
25
|
-
if (lastSlash === -1)
|
|
26
|
-
return ".";
|
|
27
|
-
if (lastSlash === 0)
|
|
28
|
-
return "/";
|
|
29
|
-
return normalized.substring(0, lastSlash);
|
|
30
|
-
}
|
|
31
|
-
static basename(path) {
|
|
32
|
-
const normalized = Path.normalize(path).replace(/\/$/, "");
|
|
33
|
-
if (normalized === "")
|
|
34
|
-
return "";
|
|
35
|
-
const lastSlash = normalized.lastIndexOf("/");
|
|
36
|
-
return lastSlash >= 0 ? normalized.substring(lastSlash + 1) : normalized;
|
|
37
|
-
}
|
|
38
|
-
static extname(path) {
|
|
39
|
-
const base = Path.basename(path);
|
|
40
|
-
const lastDot = base.lastIndexOf(".");
|
|
41
|
-
if (lastDot === -1 || lastDot === 0 || lastDot === base.length - 1) {
|
|
42
|
-
return "";
|
|
43
|
-
}
|
|
44
|
-
return base.substring(lastDot);
|
|
45
|
-
}
|
|
46
|
-
static async walkDirectory(fs, rootPath, currentRelativePath = "") {
|
|
47
|
-
const entries = [];
|
|
48
|
-
const absolutePath = currentRelativePath ? Path.join(rootPath, currentRelativePath) : rootPath;
|
|
49
|
-
const items = await fs.readdir(absolutePath);
|
|
50
|
-
for (const item of items) {
|
|
51
|
-
const itemRelativePath = currentRelativePath ? Path.join(currentRelativePath, item) : item;
|
|
52
|
-
const itemAbsolutePath = Path.join(rootPath, itemRelativePath);
|
|
53
|
-
const stat = await fs.stat(itemAbsolutePath);
|
|
54
|
-
if (stat?.isDirectory()) {
|
|
55
|
-
const subEntries = await Path.walkDirectory(fs, rootPath, itemRelativePath);
|
|
56
|
-
entries.push(...subEntries);
|
|
57
|
-
} else if (stat?.isFile()) {
|
|
58
|
-
entries.push({
|
|
59
|
-
relativePath: Path.normalize(itemRelativePath),
|
|
60
|
-
absolutePath: Path.normalize(itemAbsolutePath)
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return entries;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
class TemporaryStorageService {
|
|
69
|
-
fileSystem;
|
|
70
|
-
_tempFolderPath = null;
|
|
71
|
-
constructor(fileSystem) {
|
|
72
|
-
this.fileSystem = fileSystem;
|
|
73
|
-
}
|
|
74
|
-
async getTempFolderPath() {
|
|
75
|
-
if (!this._tempFolderPath) {
|
|
76
|
-
const systemTempDir = await this.fileSystem.getTempDir();
|
|
77
|
-
const uniqueFolderName = this.generateUniqueFolderName();
|
|
78
|
-
this._tempFolderPath = Path.join(systemTempDir, uniqueFolderName);
|
|
79
|
-
await this.fileSystem.mkdir(this._tempFolderPath);
|
|
80
|
-
}
|
|
81
|
-
return this._tempFolderPath;
|
|
82
|
-
}
|
|
83
|
-
generateUniqueFolderName() {
|
|
84
|
-
const timestamp = Date.now();
|
|
85
|
-
const random = Math.random().toString(36).substring(2, 10);
|
|
86
|
-
return `tool-temp-${timestamp}-${random}`;
|
|
87
|
-
}
|
|
88
|
-
async getTempSubfolderPathAsync(subfolder) {
|
|
89
|
-
const tempFolderPath = await this.getTempFolderPath();
|
|
90
|
-
const inputPath = Path.join(tempFolderPath, subfolder);
|
|
91
|
-
await this.fileSystem.mkdir(inputPath);
|
|
92
|
-
return inputPath;
|
|
93
|
-
}
|
|
94
|
-
async cleanup() {
|
|
95
|
-
try {
|
|
96
|
-
if (!this._tempFolderPath) {
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
try {
|
|
100
|
-
const stats = await this.fileSystem.stat(this._tempFolderPath);
|
|
101
|
-
if (!stats) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
} catch {
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
const _pathToCleanup = this._tempFolderPath;
|
|
108
|
-
await this.fileSystem.rm(this._tempFolderPath);
|
|
109
|
-
this._tempFolderPath = null;
|
|
110
|
-
} catch {}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
function isPluralForm(value) {
|
|
114
|
-
return typeof value === "object" && value !== null && "other" in value;
|
|
115
|
-
}
|
|
116
|
-
function selectPluralForm(forms, count) {
|
|
117
|
-
if (count === 0 && forms.zero !== undefined) {
|
|
118
|
-
return forms.zero;
|
|
119
|
-
}
|
|
120
|
-
if (count === 1 && forms.one !== undefined) {
|
|
121
|
-
return forms.one;
|
|
122
|
-
}
|
|
123
|
-
if (count === 2 && forms.two !== undefined) {
|
|
124
|
-
return forms.two;
|
|
125
|
-
}
|
|
126
|
-
if (forms.few !== undefined) {
|
|
127
|
-
const mod10 = count % 10;
|
|
128
|
-
const mod100 = count % 100;
|
|
129
|
-
if (mod10 >= 2 && mod10 <= 4 && (mod100 < 10 || mod100 >= 20)) {
|
|
130
|
-
return forms.few;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
if (forms.many !== undefined) {
|
|
134
|
-
const mod10 = count % 10;
|
|
135
|
-
const mod100 = count % 100;
|
|
136
|
-
if (count === 0 || mod10 === 0 && mod100 !== 0 || mod10 >= 5 && mod10 <= 9 || mod100 >= 11 && mod100 <= 14) {
|
|
137
|
-
return forms.many;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
return forms.other;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
class I18nManager {
|
|
144
|
-
static translations = {};
|
|
145
|
-
static currentLocale = "en";
|
|
146
|
-
static fallbackLocale = "en";
|
|
147
|
-
static registerTranslations(locale, catalog) {
|
|
148
|
-
if (!I18nManager.translations[locale]) {
|
|
149
|
-
I18nManager.translations[locale] = {};
|
|
150
|
-
}
|
|
151
|
-
I18nManager.translations[locale] = I18nManager.deepMerge(I18nManager.translations[locale], catalog);
|
|
152
|
-
}
|
|
153
|
-
static setLocale(locale) {
|
|
154
|
-
const normalized = I18nManager.normalizeLocale(locale);
|
|
155
|
-
if (I18nManager.translations[normalized]) {
|
|
156
|
-
I18nManager.currentLocale = normalized;
|
|
157
|
-
return normalized;
|
|
158
|
-
}
|
|
159
|
-
const baseLocale = normalized.split("-")[0];
|
|
160
|
-
if (baseLocale !== normalized && I18nManager.translations[baseLocale]) {
|
|
161
|
-
I18nManager.currentLocale = baseLocale;
|
|
162
|
-
return baseLocale;
|
|
163
|
-
}
|
|
164
|
-
return I18nManager.currentLocale;
|
|
165
|
-
}
|
|
166
|
-
static getLocale() {
|
|
167
|
-
return I18nManager.currentLocale;
|
|
168
|
-
}
|
|
169
|
-
static setFallbackLocale(locale) {
|
|
170
|
-
I18nManager.fallbackLocale = I18nManager.normalizeLocale(locale);
|
|
171
|
-
}
|
|
172
|
-
static t(key, params, locale) {
|
|
173
|
-
const targetLocale = locale ? I18nManager.normalizeLocale(locale) : I18nManager.currentLocale;
|
|
174
|
-
let value = I18nManager.getTranslationValue(key, targetLocale);
|
|
175
|
-
if (value === undefined && targetLocale !== I18nManager.fallbackLocale) {
|
|
176
|
-
value = I18nManager.getTranslationValue(key, I18nManager.fallbackLocale);
|
|
177
|
-
}
|
|
178
|
-
if (value === undefined) {
|
|
179
|
-
return key;
|
|
180
|
-
}
|
|
181
|
-
if (isPluralForm(value) && params && "count" in params) {
|
|
182
|
-
const count = typeof params.count === "number" ? params.count : Number(params.count);
|
|
183
|
-
value = selectPluralForm(value, count);
|
|
184
|
-
} else if (isPluralForm(value)) {
|
|
185
|
-
value = value.other;
|
|
186
|
-
}
|
|
187
|
-
if (typeof value !== "string") {
|
|
188
|
-
return key;
|
|
189
|
-
}
|
|
190
|
-
return params ? I18nManager.interpolate(value, params) : value;
|
|
191
|
-
}
|
|
192
|
-
static has(key, locale) {
|
|
193
|
-
const targetLocale = locale ? I18nManager.normalizeLocale(locale) : I18nManager.currentLocale;
|
|
194
|
-
const value = I18nManager.getTranslationValue(key, targetLocale);
|
|
195
|
-
if (value !== undefined) {
|
|
196
|
-
return true;
|
|
197
|
-
}
|
|
198
|
-
if (targetLocale !== I18nManager.fallbackLocale) {
|
|
199
|
-
return I18nManager.getTranslationValue(key, I18nManager.fallbackLocale) !== undefined;
|
|
200
|
-
}
|
|
201
|
-
return false;
|
|
202
|
-
}
|
|
203
|
-
static getAvailableLocales() {
|
|
204
|
-
return Object.keys(I18nManager.translations);
|
|
205
|
-
}
|
|
206
|
-
static clearTranslations() {
|
|
207
|
-
I18nManager.translations = {};
|
|
208
|
-
I18nManager.currentLocale = "en";
|
|
209
|
-
}
|
|
210
|
-
static getTranslationValue(key, locale) {
|
|
211
|
-
const catalog = I18nManager.translations[locale];
|
|
212
|
-
if (!catalog) {
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
const keys = key.split(".");
|
|
216
|
-
let value = catalog;
|
|
217
|
-
for (const k of keys) {
|
|
218
|
-
if (value && typeof value === "object" && k in value) {
|
|
219
|
-
value = value[k];
|
|
220
|
-
} else {
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
return value;
|
|
225
|
-
}
|
|
226
|
-
static interpolate(template, params) {
|
|
227
|
-
return template.replace(/\{(\w+)\}/g, (_, key) => {
|
|
228
|
-
const value = params[key];
|
|
229
|
-
return value !== undefined ? String(value) : `{${key}}`;
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
static normalizeLocale(locale) {
|
|
233
|
-
const normalized = locale.toLowerCase().replace(/_/g, "-");
|
|
234
|
-
const specialLocales = ["es-mx", "pt-br", "zh-cn", "zh-tw"];
|
|
235
|
-
if (specialLocales.includes(normalized)) {
|
|
236
|
-
return normalized;
|
|
237
|
-
}
|
|
238
|
-
return normalized.split("-")[0];
|
|
239
|
-
}
|
|
240
|
-
static deepMerge(target, source) {
|
|
241
|
-
const result = { ...target };
|
|
242
|
-
for (const key of Object.keys(source)) {
|
|
243
|
-
const sourceValue = source[key];
|
|
244
|
-
const targetValue = result[key];
|
|
245
|
-
if (sourceValue && typeof sourceValue === "object" && !Array.isArray(sourceValue) && targetValue && typeof targetValue === "object" && !Array.isArray(targetValue)) {
|
|
246
|
-
result[key] = I18nManager.deepMerge(targetValue, sourceValue);
|
|
247
|
-
} else {
|
|
248
|
-
result[key] = sourceValue;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
return result;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
var de = {
|
|
255
|
-
toolCore: {
|
|
256
|
-
errors: {
|
|
257
|
-
internal: "Internal error: {message}",
|
|
258
|
-
fileNotFound: "File not found: {path}",
|
|
259
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
260
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
261
|
-
directoryNotFound: "Directory not found: {path}",
|
|
262
|
-
invalidPath: "{path} is not a valid path",
|
|
263
|
-
operationCanceled: "Operation was canceled",
|
|
264
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
265
|
-
},
|
|
266
|
-
progress: {
|
|
267
|
-
copying: "Copying files...",
|
|
268
|
-
building: "Building project...",
|
|
269
|
-
packaging: "Creating package...",
|
|
270
|
-
validating: "Validating...",
|
|
271
|
-
analyzing: "Analyzing...",
|
|
272
|
-
restoring: "Restoring dependencies..."
|
|
273
|
-
},
|
|
274
|
-
validation: {
|
|
275
|
-
requiredField: "{field} is required",
|
|
276
|
-
invalidValue: "Invalid value for {field}",
|
|
277
|
-
pathNotFound: "Path not found: {path}",
|
|
278
|
-
fileRequired: "File is required: {path}",
|
|
279
|
-
directoryRequired: "Directory is required: {path}"
|
|
280
|
-
},
|
|
281
|
-
warnings: {
|
|
282
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
283
|
-
},
|
|
284
|
-
info: {
|
|
285
|
-
operationComplete: "Operation completed successfully",
|
|
286
|
-
filesProcessed: {
|
|
287
|
-
zero: "No files processed",
|
|
288
|
-
one: "{count} file processed",
|
|
289
|
-
other: "{count} files processed"
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
};
|
|
294
|
-
var en = {
|
|
295
|
-
toolCore: {
|
|
296
|
-
errors: {
|
|
297
|
-
internal: "Internal error: {message}",
|
|
298
|
-
fileNotFound: "File not found: {path}",
|
|
299
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
300
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
301
|
-
directoryNotFound: "Directory not found: {path}",
|
|
302
|
-
invalidPath: "{path} is not a valid path",
|
|
303
|
-
operationCanceled: "Operation was canceled",
|
|
304
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
305
|
-
},
|
|
306
|
-
progress: {
|
|
307
|
-
copying: "Copying files...",
|
|
308
|
-
building: "Building project...",
|
|
309
|
-
packaging: "Creating package...",
|
|
310
|
-
validating: "Validating...",
|
|
311
|
-
analyzing: "Analyzing...",
|
|
312
|
-
restoring: "Restoring dependencies..."
|
|
313
|
-
},
|
|
314
|
-
validation: {
|
|
315
|
-
requiredField: "{field} is required",
|
|
316
|
-
invalidValue: "Invalid value for {field}",
|
|
317
|
-
pathNotFound: "Path not found: {path}",
|
|
318
|
-
fileRequired: "File is required: {path}",
|
|
319
|
-
directoryRequired: "Directory is required: {path}"
|
|
320
|
-
},
|
|
321
|
-
warnings: {
|
|
322
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
323
|
-
},
|
|
324
|
-
info: {
|
|
325
|
-
operationComplete: "Operation completed successfully",
|
|
326
|
-
filesProcessed: {
|
|
327
|
-
zero: "No files processed",
|
|
328
|
-
one: "{count} file processed",
|
|
329
|
-
other: "{count} files processed"
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
};
|
|
334
|
-
var es = {
|
|
335
|
-
toolCore: {
|
|
336
|
-
errors: {
|
|
337
|
-
internal: "Internal error: {message}",
|
|
338
|
-
fileNotFound: "File not found: {path}",
|
|
339
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
340
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
341
|
-
directoryNotFound: "Directory not found: {path}",
|
|
342
|
-
invalidPath: "{path} is not a valid path",
|
|
343
|
-
operationCanceled: "Operation was canceled",
|
|
344
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
345
|
-
},
|
|
346
|
-
progress: {
|
|
347
|
-
copying: "Copying files...",
|
|
348
|
-
building: "Building project...",
|
|
349
|
-
packaging: "Creating package...",
|
|
350
|
-
validating: "Validating...",
|
|
351
|
-
analyzing: "Analyzing...",
|
|
352
|
-
restoring: "Restoring dependencies..."
|
|
353
|
-
},
|
|
354
|
-
validation: {
|
|
355
|
-
requiredField: "{field} is required",
|
|
356
|
-
invalidValue: "Invalid value for {field}",
|
|
357
|
-
pathNotFound: "Path not found: {path}",
|
|
358
|
-
fileRequired: "File is required: {path}",
|
|
359
|
-
directoryRequired: "Directory is required: {path}"
|
|
360
|
-
},
|
|
361
|
-
warnings: {
|
|
362
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
363
|
-
},
|
|
364
|
-
info: {
|
|
365
|
-
operationComplete: "Operation completed successfully",
|
|
366
|
-
filesProcessed: {
|
|
367
|
-
zero: "No files processed",
|
|
368
|
-
one: "{count} file processed",
|
|
369
|
-
other: "{count} files processed"
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
};
|
|
374
|
-
var es_MX = {
|
|
375
|
-
toolCore: {
|
|
376
|
-
errors: {
|
|
377
|
-
internal: "Internal error: {message}",
|
|
378
|
-
fileNotFound: "File not found: {path}",
|
|
379
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
380
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
381
|
-
directoryNotFound: "Directory not found: {path}",
|
|
382
|
-
invalidPath: "{path} is not a valid path",
|
|
383
|
-
operationCanceled: "Operation was canceled",
|
|
384
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
385
|
-
},
|
|
386
|
-
progress: {
|
|
387
|
-
copying: "Copying files...",
|
|
388
|
-
building: "Building project...",
|
|
389
|
-
packaging: "Creating package...",
|
|
390
|
-
validating: "Validating...",
|
|
391
|
-
analyzing: "Analyzing...",
|
|
392
|
-
restoring: "Restoring dependencies..."
|
|
393
|
-
},
|
|
394
|
-
validation: {
|
|
395
|
-
requiredField: "{field} is required",
|
|
396
|
-
invalidValue: "Invalid value for {field}",
|
|
397
|
-
pathNotFound: "Path not found: {path}",
|
|
398
|
-
fileRequired: "File is required: {path}",
|
|
399
|
-
directoryRequired: "Directory is required: {path}"
|
|
400
|
-
},
|
|
401
|
-
warnings: {
|
|
402
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
403
|
-
},
|
|
404
|
-
info: {
|
|
405
|
-
operationComplete: "Operation completed successfully",
|
|
406
|
-
filesProcessed: {
|
|
407
|
-
zero: "No files processed",
|
|
408
|
-
one: "{count} file processed",
|
|
409
|
-
other: "{count} files processed"
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
};
|
|
414
|
-
var fr = {
|
|
415
|
-
toolCore: {
|
|
416
|
-
errors: {
|
|
417
|
-
internal: "Internal error: {message}",
|
|
418
|
-
fileNotFound: "File not found: {path}",
|
|
419
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
420
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
421
|
-
directoryNotFound: "Directory not found: {path}",
|
|
422
|
-
invalidPath: "{path} is not a valid path",
|
|
423
|
-
operationCanceled: "Operation was canceled",
|
|
424
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
425
|
-
},
|
|
426
|
-
progress: {
|
|
427
|
-
copying: "Copying files...",
|
|
428
|
-
building: "Building project...",
|
|
429
|
-
packaging: "Creating package...",
|
|
430
|
-
validating: "Validating...",
|
|
431
|
-
analyzing: "Analyzing...",
|
|
432
|
-
restoring: "Restoring dependencies..."
|
|
433
|
-
},
|
|
434
|
-
validation: {
|
|
435
|
-
requiredField: "{field} is required",
|
|
436
|
-
invalidValue: "Invalid value for {field}",
|
|
437
|
-
pathNotFound: "Path not found: {path}",
|
|
438
|
-
fileRequired: "File is required: {path}",
|
|
439
|
-
directoryRequired: "Directory is required: {path}"
|
|
440
|
-
},
|
|
441
|
-
warnings: {
|
|
442
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
443
|
-
},
|
|
444
|
-
info: {
|
|
445
|
-
operationComplete: "Operation completed successfully",
|
|
446
|
-
filesProcessed: {
|
|
447
|
-
zero: "No files processed",
|
|
448
|
-
one: "{count} file processed",
|
|
449
|
-
other: "{count} files processed"
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
};
|
|
454
|
-
var ja = {
|
|
455
|
-
toolCore: {
|
|
456
|
-
errors: {
|
|
457
|
-
internal: "Internal error: {message}",
|
|
458
|
-
fileNotFound: "File not found: {path}",
|
|
459
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
460
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
461
|
-
directoryNotFound: "Directory not found: {path}",
|
|
462
|
-
invalidPath: "{path} is not a valid path",
|
|
463
|
-
operationCanceled: "Operation was canceled",
|
|
464
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
465
|
-
},
|
|
466
|
-
progress: {
|
|
467
|
-
copying: "Copying files...",
|
|
468
|
-
building: "Building project...",
|
|
469
|
-
packaging: "Creating package...",
|
|
470
|
-
validating: "Validating...",
|
|
471
|
-
analyzing: "Analyzing...",
|
|
472
|
-
restoring: "Restoring dependencies..."
|
|
473
|
-
},
|
|
474
|
-
validation: {
|
|
475
|
-
requiredField: "{field} is required",
|
|
476
|
-
invalidValue: "Invalid value for {field}",
|
|
477
|
-
pathNotFound: "Path not found: {path}",
|
|
478
|
-
fileRequired: "File is required: {path}",
|
|
479
|
-
directoryRequired: "Directory is required: {path}"
|
|
480
|
-
},
|
|
481
|
-
warnings: {
|
|
482
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
483
|
-
},
|
|
484
|
-
info: {
|
|
485
|
-
operationComplete: "Operation completed successfully",
|
|
486
|
-
filesProcessed: {
|
|
487
|
-
zero: "No files processed",
|
|
488
|
-
one: "{count} file processed",
|
|
489
|
-
other: "{count} files processed"
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
};
|
|
494
|
-
var ko = {
|
|
495
|
-
toolCore: {
|
|
496
|
-
errors: {
|
|
497
|
-
internal: "Internal error: {message}",
|
|
498
|
-
fileNotFound: "File not found: {path}",
|
|
499
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
500
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
501
|
-
directoryNotFound: "Directory not found: {path}",
|
|
502
|
-
invalidPath: "{path} is not a valid path",
|
|
503
|
-
operationCanceled: "Operation was canceled",
|
|
504
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
505
|
-
},
|
|
506
|
-
progress: {
|
|
507
|
-
copying: "Copying files...",
|
|
508
|
-
building: "Building project...",
|
|
509
|
-
packaging: "Creating package...",
|
|
510
|
-
validating: "Validating...",
|
|
511
|
-
analyzing: "Analyzing...",
|
|
512
|
-
restoring: "Restoring dependencies..."
|
|
513
|
-
},
|
|
514
|
-
validation: {
|
|
515
|
-
requiredField: "{field} is required",
|
|
516
|
-
invalidValue: "Invalid value for {field}",
|
|
517
|
-
pathNotFound: "Path not found: {path}",
|
|
518
|
-
fileRequired: "File is required: {path}",
|
|
519
|
-
directoryRequired: "Directory is required: {path}"
|
|
520
|
-
},
|
|
521
|
-
warnings: {
|
|
522
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
523
|
-
},
|
|
524
|
-
info: {
|
|
525
|
-
operationComplete: "Operation completed successfully",
|
|
526
|
-
filesProcessed: {
|
|
527
|
-
zero: "No files processed",
|
|
528
|
-
one: "{count} file processed",
|
|
529
|
-
other: "{count} files processed"
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
}
|
|
533
|
-
};
|
|
534
|
-
var pt = {
|
|
535
|
-
toolCore: {
|
|
536
|
-
errors: {
|
|
537
|
-
internal: "Internal error: {message}",
|
|
538
|
-
fileNotFound: "File not found: {path}",
|
|
539
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
540
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
541
|
-
directoryNotFound: "Directory not found: {path}",
|
|
542
|
-
invalidPath: "{path} is not a valid path",
|
|
543
|
-
operationCanceled: "Operation was canceled",
|
|
544
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
545
|
-
},
|
|
546
|
-
progress: {
|
|
547
|
-
copying: "Copying files...",
|
|
548
|
-
building: "Building project...",
|
|
549
|
-
packaging: "Creating package...",
|
|
550
|
-
validating: "Validating...",
|
|
551
|
-
analyzing: "Analyzing...",
|
|
552
|
-
restoring: "Restoring dependencies..."
|
|
553
|
-
},
|
|
554
|
-
validation: {
|
|
555
|
-
requiredField: "{field} is required",
|
|
556
|
-
invalidValue: "Invalid value for {field}",
|
|
557
|
-
pathNotFound: "Path not found: {path}",
|
|
558
|
-
fileRequired: "File is required: {path}",
|
|
559
|
-
directoryRequired: "Directory is required: {path}"
|
|
560
|
-
},
|
|
561
|
-
warnings: {
|
|
562
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
563
|
-
},
|
|
564
|
-
info: {
|
|
565
|
-
operationComplete: "Operation completed successfully",
|
|
566
|
-
filesProcessed: {
|
|
567
|
-
zero: "No files processed",
|
|
568
|
-
one: "{count} file processed",
|
|
569
|
-
other: "{count} files processed"
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
};
|
|
574
|
-
var pt_BR = {
|
|
575
|
-
toolCore: {
|
|
576
|
-
errors: {
|
|
577
|
-
internal: "Internal error: {message}",
|
|
578
|
-
fileNotFound: "File not found: {path}",
|
|
579
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
580
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
581
|
-
directoryNotFound: "Directory not found: {path}",
|
|
582
|
-
invalidPath: "{path} is not a valid path",
|
|
583
|
-
operationCanceled: "Operation was canceled",
|
|
584
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
585
|
-
},
|
|
586
|
-
progress: {
|
|
587
|
-
copying: "Copying files...",
|
|
588
|
-
building: "Building project...",
|
|
589
|
-
packaging: "Creating package...",
|
|
590
|
-
validating: "Validating...",
|
|
591
|
-
analyzing: "Analyzing...",
|
|
592
|
-
restoring: "Restoring dependencies..."
|
|
593
|
-
},
|
|
594
|
-
validation: {
|
|
595
|
-
requiredField: "{field} is required",
|
|
596
|
-
invalidValue: "Invalid value for {field}",
|
|
597
|
-
pathNotFound: "Path not found: {path}",
|
|
598
|
-
fileRequired: "File is required: {path}",
|
|
599
|
-
directoryRequired: "Directory is required: {path}"
|
|
600
|
-
},
|
|
601
|
-
warnings: {
|
|
602
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
603
|
-
},
|
|
604
|
-
info: {
|
|
605
|
-
operationComplete: "Operation completed successfully",
|
|
606
|
-
filesProcessed: {
|
|
607
|
-
zero: "No files processed",
|
|
608
|
-
one: "{count} file processed",
|
|
609
|
-
other: "{count} files processed"
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
}
|
|
613
|
-
};
|
|
614
|
-
var ro = {
|
|
615
|
-
toolCore: {
|
|
616
|
-
errors: {
|
|
617
|
-
internal: "Internal error: {message}",
|
|
618
|
-
fileNotFound: "File not found: {path}",
|
|
619
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
620
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
621
|
-
directoryNotFound: "Directory not found: {path}",
|
|
622
|
-
invalidPath: "{path} is not a valid path",
|
|
623
|
-
operationCanceled: "Operation was canceled",
|
|
624
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
625
|
-
},
|
|
626
|
-
progress: {
|
|
627
|
-
copying: "Copying files...",
|
|
628
|
-
building: "Building project...",
|
|
629
|
-
packaging: "Creating package...",
|
|
630
|
-
validating: "Validating...",
|
|
631
|
-
analyzing: "Analyzing...",
|
|
632
|
-
restoring: "Restoring dependencies..."
|
|
633
|
-
},
|
|
634
|
-
validation: {
|
|
635
|
-
requiredField: "{field} is required",
|
|
636
|
-
invalidValue: "Invalid value for {field}",
|
|
637
|
-
pathNotFound: "Path not found: {path}",
|
|
638
|
-
fileRequired: "File is required: {path}",
|
|
639
|
-
directoryRequired: "Directory is required: {path}"
|
|
640
|
-
},
|
|
641
|
-
warnings: {
|
|
642
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
643
|
-
},
|
|
644
|
-
info: {
|
|
645
|
-
operationComplete: "Operation completed successfully",
|
|
646
|
-
filesProcessed: {
|
|
647
|
-
zero: "No files processed",
|
|
648
|
-
one: "{count} file processed",
|
|
649
|
-
other: "{count} files processed"
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
}
|
|
653
|
-
};
|
|
654
|
-
var ru = {
|
|
655
|
-
toolCore: {
|
|
656
|
-
errors: {
|
|
657
|
-
internal: "Internal error: {message}",
|
|
658
|
-
fileNotFound: "File not found: {path}",
|
|
659
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
660
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
661
|
-
directoryNotFound: "Directory not found: {path}",
|
|
662
|
-
invalidPath: "{path} is not a valid path",
|
|
663
|
-
operationCanceled: "Operation was canceled",
|
|
664
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
665
|
-
},
|
|
666
|
-
progress: {
|
|
667
|
-
copying: "Copying files...",
|
|
668
|
-
building: "Building project...",
|
|
669
|
-
packaging: "Creating package...",
|
|
670
|
-
validating: "Validating...",
|
|
671
|
-
analyzing: "Analyzing...",
|
|
672
|
-
restoring: "Restoring dependencies..."
|
|
673
|
-
},
|
|
674
|
-
validation: {
|
|
675
|
-
requiredField: "{field} is required",
|
|
676
|
-
invalidValue: "Invalid value for {field}",
|
|
677
|
-
pathNotFound: "Path not found: {path}",
|
|
678
|
-
fileRequired: "File is required: {path}",
|
|
679
|
-
directoryRequired: "Directory is required: {path}"
|
|
680
|
-
},
|
|
681
|
-
warnings: {
|
|
682
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
683
|
-
},
|
|
684
|
-
info: {
|
|
685
|
-
operationComplete: "Operation completed successfully",
|
|
686
|
-
filesProcessed: {
|
|
687
|
-
zero: "No files processed",
|
|
688
|
-
one: "{count} file processed",
|
|
689
|
-
other: "{count} files processed"
|
|
690
|
-
}
|
|
691
|
-
}
|
|
692
|
-
}
|
|
693
|
-
};
|
|
694
|
-
var tr = {
|
|
695
|
-
toolCore: {
|
|
696
|
-
errors: {
|
|
697
|
-
internal: "Internal error: {message}",
|
|
698
|
-
fileNotFound: "File not found: {path}",
|
|
699
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
700
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
701
|
-
directoryNotFound: "Directory not found: {path}",
|
|
702
|
-
invalidPath: "{path} is not a valid path",
|
|
703
|
-
operationCanceled: "Operation was canceled",
|
|
704
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
705
|
-
},
|
|
706
|
-
progress: {
|
|
707
|
-
copying: "Copying files...",
|
|
708
|
-
building: "Building project...",
|
|
709
|
-
packaging: "Creating package...",
|
|
710
|
-
validating: "Validating...",
|
|
711
|
-
analyzing: "Analyzing...",
|
|
712
|
-
restoring: "Restoring dependencies..."
|
|
713
|
-
},
|
|
714
|
-
validation: {
|
|
715
|
-
requiredField: "{field} is required",
|
|
716
|
-
invalidValue: "Invalid value for {field}",
|
|
717
|
-
pathNotFound: "Path not found: {path}",
|
|
718
|
-
fileRequired: "File is required: {path}",
|
|
719
|
-
directoryRequired: "Directory is required: {path}"
|
|
720
|
-
},
|
|
721
|
-
warnings: {
|
|
722
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
723
|
-
},
|
|
724
|
-
info: {
|
|
725
|
-
operationComplete: "Operation completed successfully",
|
|
726
|
-
filesProcessed: {
|
|
727
|
-
zero: "No files processed",
|
|
728
|
-
one: "{count} file processed",
|
|
729
|
-
other: "{count} files processed"
|
|
730
|
-
}
|
|
731
|
-
}
|
|
732
|
-
}
|
|
733
|
-
};
|
|
734
|
-
var zh_CN = {
|
|
735
|
-
toolCore: {
|
|
736
|
-
errors: {
|
|
737
|
-
internal: "Internal error: {message}",
|
|
738
|
-
fileNotFound: "File not found: {path}",
|
|
739
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
740
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
741
|
-
directoryNotFound: "Directory not found: {path}",
|
|
742
|
-
invalidPath: "{path} is not a valid path",
|
|
743
|
-
operationCanceled: "Operation was canceled",
|
|
744
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
745
|
-
},
|
|
746
|
-
progress: {
|
|
747
|
-
copying: "Copying files...",
|
|
748
|
-
building: "Building project...",
|
|
749
|
-
packaging: "Creating package...",
|
|
750
|
-
validating: "Validating...",
|
|
751
|
-
analyzing: "Analyzing...",
|
|
752
|
-
restoring: "Restoring dependencies..."
|
|
753
|
-
},
|
|
754
|
-
validation: {
|
|
755
|
-
requiredField: "{field} is required",
|
|
756
|
-
invalidValue: "Invalid value for {field}",
|
|
757
|
-
pathNotFound: "Path not found: {path}",
|
|
758
|
-
fileRequired: "File is required: {path}",
|
|
759
|
-
directoryRequired: "Directory is required: {path}"
|
|
760
|
-
},
|
|
761
|
-
warnings: {
|
|
762
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
763
|
-
},
|
|
764
|
-
info: {
|
|
765
|
-
operationComplete: "Operation completed successfully",
|
|
766
|
-
filesProcessed: {
|
|
767
|
-
zero: "No files processed",
|
|
768
|
-
one: "{count} file processed",
|
|
769
|
-
other: "{count} files processed"
|
|
770
|
-
}
|
|
771
|
-
}
|
|
772
|
-
}
|
|
773
|
-
};
|
|
774
|
-
var zh_TW = {
|
|
775
|
-
toolCore: {
|
|
776
|
-
errors: {
|
|
777
|
-
internal: "Internal error: {message}",
|
|
778
|
-
fileNotFound: "File not found: {path}",
|
|
779
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
780
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
781
|
-
directoryNotFound: "Directory not found: {path}",
|
|
782
|
-
invalidPath: "{path} is not a valid path",
|
|
783
|
-
operationCanceled: "Operation was canceled",
|
|
784
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
785
|
-
},
|
|
786
|
-
progress: {
|
|
787
|
-
copying: "Copying files...",
|
|
788
|
-
building: "Building project...",
|
|
789
|
-
packaging: "Creating package...",
|
|
790
|
-
validating: "Validating...",
|
|
791
|
-
analyzing: "Analyzing...",
|
|
792
|
-
restoring: "Restoring dependencies..."
|
|
793
|
-
},
|
|
794
|
-
validation: {
|
|
795
|
-
requiredField: "{field} is required",
|
|
796
|
-
invalidValue: "Invalid value for {field}",
|
|
797
|
-
pathNotFound: "Path not found: {path}",
|
|
798
|
-
fileRequired: "File is required: {path}",
|
|
799
|
-
directoryRequired: "Directory is required: {path}"
|
|
800
|
-
},
|
|
801
|
-
warnings: {
|
|
802
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
803
|
-
},
|
|
804
|
-
info: {
|
|
805
|
-
operationComplete: "Operation completed successfully",
|
|
806
|
-
filesProcessed: {
|
|
807
|
-
zero: "No files processed",
|
|
808
|
-
one: "{count} file processed",
|
|
809
|
-
other: "{count} files processed"
|
|
810
|
-
}
|
|
811
|
-
}
|
|
812
|
-
}
|
|
813
|
-
};
|
|
814
|
-
var zu = {
|
|
815
|
-
toolCore: {
|
|
816
|
-
errors: {
|
|
817
|
-
internal: "Internal error: {message}",
|
|
818
|
-
fileNotFound: "File not found: {path}",
|
|
819
|
-
fileReadFailed: "Failed to read file: {path}",
|
|
820
|
-
fileWriteFailed: "Failed to write file: {path}",
|
|
821
|
-
directoryNotFound: "Directory not found: {path}",
|
|
822
|
-
invalidPath: "{path} is not a valid path",
|
|
823
|
-
operationCanceled: "Operation was canceled",
|
|
824
|
-
invalidParameter: "Invalid parameter: {parameter}"
|
|
825
|
-
},
|
|
826
|
-
progress: {
|
|
827
|
-
copying: "Copying files...",
|
|
828
|
-
building: "Building project...",
|
|
829
|
-
packaging: "Creating package...",
|
|
830
|
-
validating: "Validating...",
|
|
831
|
-
analyzing: "Analyzing...",
|
|
832
|
-
restoring: "Restoring dependencies..."
|
|
833
|
-
},
|
|
834
|
-
validation: {
|
|
835
|
-
requiredField: "{field} is required",
|
|
836
|
-
invalidValue: "Invalid value for {field}",
|
|
837
|
-
pathNotFound: "Path not found: {path}",
|
|
838
|
-
fileRequired: "File is required: {path}",
|
|
839
|
-
directoryRequired: "Directory is required: {path}"
|
|
840
|
-
},
|
|
841
|
-
warnings: {
|
|
842
|
-
factoryAlreadyRegistered: "A factory is already registered for project type '{type}'. Skipping duplicate registration."
|
|
843
|
-
},
|
|
844
|
-
info: {
|
|
845
|
-
operationComplete: "Operation completed successfully",
|
|
846
|
-
filesProcessed: {
|
|
847
|
-
zero: "No files processed",
|
|
848
|
-
one: "{count} file processed",
|
|
849
|
-
other: "{count} files processed"
|
|
850
|
-
}
|
|
851
|
-
}
|
|
852
|
-
}
|
|
853
|
-
};
|
|
854
|
-
|
|
855
|
-
class TranslationService {
|
|
856
|
-
static instance;
|
|
857
|
-
currentLocale = "en";
|
|
858
|
-
constructor() {}
|
|
859
|
-
static getInstance() {
|
|
860
|
-
if (!TranslationService.instance) {
|
|
861
|
-
TranslationService.instance = new TranslationService;
|
|
862
|
-
}
|
|
863
|
-
return TranslationService.instance;
|
|
864
|
-
}
|
|
865
|
-
setLocale(locale) {
|
|
866
|
-
this.currentLocale = I18nManager.setLocale(locale);
|
|
867
|
-
}
|
|
868
|
-
getLocale() {
|
|
869
|
-
return this.currentLocale;
|
|
870
|
-
}
|
|
871
|
-
t(key, params) {
|
|
872
|
-
return I18nManager.t(key, params, this.currentLocale);
|
|
873
|
-
}
|
|
874
|
-
tLocale(key, locale, params) {
|
|
875
|
-
return I18nManager.t(key, params, locale);
|
|
876
|
-
}
|
|
877
|
-
has(key) {
|
|
878
|
-
return I18nManager.has(key, this.currentLocale);
|
|
879
|
-
}
|
|
880
|
-
getAvailableLocales() {
|
|
881
|
-
return I18nManager.getAvailableLocales();
|
|
882
|
-
}
|
|
883
|
-
}
|
|
884
|
-
var translate = TranslationService.getInstance();
|
|
885
|
-
I18nManager.registerTranslations("en", en);
|
|
886
|
-
I18nManager.registerTranslations("de", de);
|
|
887
|
-
I18nManager.registerTranslations("es", es);
|
|
888
|
-
I18nManager.registerTranslations("es-mx", es_MX);
|
|
889
|
-
I18nManager.registerTranslations("fr", fr);
|
|
890
|
-
I18nManager.registerTranslations("ja", ja);
|
|
891
|
-
I18nManager.registerTranslations("ko", ko);
|
|
892
|
-
I18nManager.registerTranslations("pt", pt);
|
|
893
|
-
I18nManager.registerTranslations("pt-br", pt_BR);
|
|
894
|
-
I18nManager.registerTranslations("ro", ro);
|
|
895
|
-
I18nManager.registerTranslations("ru", ru);
|
|
896
|
-
I18nManager.registerTranslations("tr", tr);
|
|
897
|
-
I18nManager.registerTranslations("zh-cn", zh_CN);
|
|
898
|
-
I18nManager.registerTranslations("zh-tw", zh_TW);
|
|
899
|
-
I18nManager.registerTranslations("zu", zu);
|
|
900
|
-
I18nManager.setLocale("en");
|
|
901
|
-
var BuildConfiguration;
|
|
902
|
-
((BuildConfiguration2) => {
|
|
903
|
-
BuildConfiguration2["Debug"] = "Debug";
|
|
904
|
-
BuildConfiguration2["Release"] = "Release";
|
|
905
|
-
})(BuildConfiguration ||= {});
|
|
906
|
-
var LogLevel;
|
|
907
|
-
((LogLevel2) => {
|
|
908
|
-
LogLevel2["Debug"] = "Debug";
|
|
909
|
-
LogLevel2["Info"] = "Information";
|
|
910
|
-
LogLevel2["Warn"] = "Warning";
|
|
911
|
-
LogLevel2["Error"] = "Error";
|
|
912
|
-
})(LogLevel ||= {});
|
|
913
|
-
var NugetConstants = {
|
|
914
|
-
OutputFolderName: "bundle",
|
|
915
|
-
ContentFolderName: "content",
|
|
916
|
-
OperateFileName: "operate.json",
|
|
917
|
-
EntryPointsFileName: "entry-points.json",
|
|
918
|
-
PackageDescriptorFileName: "package-descriptor.json",
|
|
919
|
-
BindingsV2FileName: "bindings_v2.json",
|
|
920
|
-
BindingsFileId: "bindings.json"
|
|
921
|
-
};
|
|
922
|
-
var PackJobTargetKind;
|
|
923
|
-
((PackJobTargetKind2) => {
|
|
924
|
-
PackJobTargetKind2["Serverless"] = "Serverless";
|
|
925
|
-
PackJobTargetKind2["LocalRobot"] = "LocalRobot";
|
|
926
|
-
})(PackJobTargetKind ||= {});
|
|
927
|
-
var ProjectTypes;
|
|
928
|
-
((ProjectTypes2) => {
|
|
929
|
-
ProjectTypes2["Agent"] = "Agent";
|
|
930
|
-
ProjectTypes2["Api"] = "Api";
|
|
931
|
-
ProjectTypes2["BusinessRules"] = "BusinessRules";
|
|
932
|
-
ProjectTypes2["Connector"] = "Connector";
|
|
933
|
-
ProjectTypes2["CaseManagement"] = "CaseManagement";
|
|
934
|
-
ProjectTypes2["Flow"] = "Flow";
|
|
935
|
-
ProjectTypes2["Function"] = "Function";
|
|
936
|
-
ProjectTypes2["ProcessOrchestration"] = "ProcessOrchestration";
|
|
937
|
-
ProjectTypes2["Process"] = "Process";
|
|
938
|
-
ProjectTypes2["Library"] = "Library";
|
|
939
|
-
ProjectTypes2["WebApp"] = "WebApp";
|
|
940
|
-
ProjectTypes2["Tests"] = "Tests";
|
|
941
|
-
ProjectTypes2["AppV2"] = "AppV2";
|
|
942
|
-
})(ProjectTypes ||= {});
|
|
943
|
-
var TargetFramework;
|
|
944
|
-
((TargetFramework2) => {
|
|
945
|
-
TargetFramework2["Portable"] = "Portable";
|
|
946
|
-
TargetFramework2["Windows"] = "Windows";
|
|
947
|
-
})(TargetFramework ||= {});
|
|
948
|
-
var ToolErrorCodes;
|
|
949
|
-
((ToolErrorCodes2) => {
|
|
950
|
-
ToolErrorCodes2["Success"] = "SUCCESS";
|
|
951
|
-
ToolErrorCodes2["InternalError"] = "INTERNAL_ERROR";
|
|
952
|
-
ToolErrorCodes2["Canceled"] = "CANCELED";
|
|
953
|
-
})(ToolErrorCodes ||= {});
|
|
954
|
-
|
|
955
|
-
class ToolResult {
|
|
956
|
-
errorCode;
|
|
957
|
-
message;
|
|
958
|
-
packages;
|
|
959
|
-
details;
|
|
960
|
-
instructions;
|
|
961
|
-
constructor(errorCode, message, packages = [], instructions) {
|
|
962
|
-
this.errorCode = errorCode;
|
|
963
|
-
this.message = message;
|
|
964
|
-
this.packages = packages;
|
|
965
|
-
this.instructions = instructions;
|
|
966
|
-
}
|
|
967
|
-
get isSuccess() {
|
|
968
|
-
return this.errorCode === "SUCCESS";
|
|
969
|
-
}
|
|
970
|
-
static success() {
|
|
971
|
-
return new ToolResult("SUCCESS");
|
|
972
|
-
}
|
|
973
|
-
static error(errorCode, message, instructions) {
|
|
974
|
-
return new ToolResult(errorCode, message, [], instructions);
|
|
975
|
-
}
|
|
976
|
-
}
|
|
977
|
-
var OPERATE_FILE = "operate.json";
|
|
978
|
-
var PROJECT_FILE = "project.json";
|
|
979
|
-
function isNonEmptyString(value) {
|
|
980
|
-
return typeof value === "string" && value.length > 0;
|
|
981
|
-
}
|
|
982
|
-
async function readJsonObject(fs, filePath) {
|
|
983
|
-
let content;
|
|
984
|
-
try {
|
|
985
|
-
content = await fs.readFile(filePath, "utf-8");
|
|
986
|
-
} catch {
|
|
987
|
-
return;
|
|
988
|
-
}
|
|
989
|
-
if (content === null) {
|
|
990
|
-
return;
|
|
991
|
-
}
|
|
992
|
-
try {
|
|
993
|
-
const parsed = JSON.parse(content);
|
|
994
|
-
if (parsed === null || typeof parsed !== "object") {
|
|
995
|
-
return;
|
|
996
|
-
}
|
|
997
|
-
return parsed;
|
|
998
|
-
} catch {
|
|
999
|
-
return;
|
|
1000
|
-
}
|
|
1001
|
-
}
|
|
1002
|
-
async function writeJsonObject(fs, filePath, data) {
|
|
1003
|
-
await fs.writeFile(filePath, `${JSON.stringify(data, null, 2)}
|
|
1004
|
-
`);
|
|
1005
|
-
}
|
|
1006
|
-
async function ensureProjectId(projectPath, fs) {
|
|
1007
|
-
const operatePath = Path.join(projectPath, OPERATE_FILE);
|
|
1008
|
-
const operateExists = await fs.exists(operatePath);
|
|
1009
|
-
if (operateExists) {
|
|
1010
|
-
const operate = await readJsonObject(fs, operatePath);
|
|
1011
|
-
if (operate && isNonEmptyString(operate.projectId)) {
|
|
1012
|
-
return operate.projectId;
|
|
1013
|
-
}
|
|
1014
|
-
if (operate) {
|
|
1015
|
-
const id = crypto.randomUUID();
|
|
1016
|
-
await writeJsonObject(fs, operatePath, {
|
|
1017
|
-
...operate,
|
|
1018
|
-
projectId: id
|
|
1019
|
-
});
|
|
1020
|
-
return id;
|
|
1021
|
-
}
|
|
1022
|
-
return crypto.randomUUID();
|
|
1023
|
-
}
|
|
1024
|
-
const projectFilePath = Path.join(projectPath, PROJECT_FILE);
|
|
1025
|
-
const projectFileExists = await fs.exists(projectFilePath);
|
|
1026
|
-
if (projectFileExists) {
|
|
1027
|
-
const projectFile = await readJsonObject(fs, projectFilePath);
|
|
1028
|
-
if (projectFile && isNonEmptyString(projectFile.projectId)) {
|
|
1029
|
-
return projectFile.projectId;
|
|
1030
|
-
}
|
|
1031
|
-
if (projectFile) {
|
|
1032
|
-
const id = crypto.randomUUID();
|
|
1033
|
-
await writeJsonObject(fs, projectFilePath, {
|
|
1034
|
-
...projectFile,
|
|
1035
|
-
projectId: id
|
|
1036
|
-
});
|
|
1037
|
-
return id;
|
|
1038
|
-
}
|
|
1039
|
-
return crypto.randomUUID();
|
|
1040
|
-
}
|
|
1041
|
-
return crypto.randomUUID();
|
|
1042
|
-
}
|
|
1043
|
-
async function ensureProjectIdInOperateFile(operateFilePath, fallbackProjectId, fs) {
|
|
1044
|
-
if (!await fs.exists(operateFilePath)) {
|
|
1045
|
-
return;
|
|
1046
|
-
}
|
|
1047
|
-
const parsed = await readJsonObject(fs, operateFilePath);
|
|
1048
|
-
if (!parsed) {
|
|
1049
|
-
return;
|
|
1050
|
-
}
|
|
1051
|
-
if (isNonEmptyString(parsed.projectId)) {
|
|
1052
|
-
return;
|
|
1053
|
-
}
|
|
1054
|
-
await writeJsonObject(fs, operateFilePath, {
|
|
1055
|
-
...parsed,
|
|
1056
|
-
projectId: fallbackProjectId
|
|
1057
|
-
});
|
|
1058
|
-
}
|
|
1059
|
-
async function writeOrBackfillOperateProjectId(operateFilePath, projectId, fs, createIfMissing) {
|
|
1060
|
-
if (await fs.exists(operateFilePath)) {
|
|
1061
|
-
await ensureProjectIdInOperateFile(operateFilePath, projectId, fs);
|
|
1062
|
-
return;
|
|
1063
|
-
}
|
|
1064
|
-
await createIfMissing();
|
|
1065
|
-
}
|
|
1066
|
-
var OPERATE_SCHEMA = "https://cloud.uipath.com/draft/2024-12/operate";
|
|
1067
|
-
async function resolveEntryPointMain(fs, sourceFolder) {
|
|
1068
|
-
const entryPointsFilePath = Path.join(sourceFolder, NugetConstants.EntryPointsFileName);
|
|
1069
|
-
if (!await fs.exists(entryPointsFilePath)) {
|
|
1070
|
-
return "";
|
|
1071
|
-
}
|
|
1072
|
-
const content = await fs.readFile(entryPointsFilePath);
|
|
1073
|
-
if (!content) {
|
|
1074
|
-
return "";
|
|
1075
|
-
}
|
|
1076
|
-
try {
|
|
1077
|
-
const parsed = JSON.parse(new TextDecoder().decode(content));
|
|
1078
|
-
return parsed.entryPoints?.[0]?.filePath ?? "";
|
|
1079
|
-
} catch {
|
|
1080
|
-
return "";
|
|
1081
|
-
}
|
|
1082
|
-
}
|
|
1083
|
-
async function writeContentOperateFile(fs, params) {
|
|
1084
|
-
const operateFilePath = Path.join(params.contentFolder, NugetConstants.OperateFileName);
|
|
1085
|
-
await writeOrBackfillOperateProjectId(operateFilePath, params.projectId, fs, async () => {
|
|
1086
|
-
const main = await resolveEntryPointMain(fs, params.contentFolder);
|
|
1087
|
-
const operateFileModel = {
|
|
1088
|
-
$schema: OPERATE_SCHEMA,
|
|
1089
|
-
contentType: params.contentType,
|
|
1090
|
-
projectId: params.projectId,
|
|
1091
|
-
main,
|
|
1092
|
-
targetFramework: "Portable",
|
|
1093
|
-
runtimeOptions: {
|
|
1094
|
-
isAttended: false,
|
|
1095
|
-
requiresUserInteraction: false
|
|
1096
|
-
}
|
|
1097
|
-
};
|
|
1098
|
-
await fs.writeFile(operateFilePath, JSON.stringify(operateFileModel, null, 2));
|
|
1099
|
-
});
|
|
1100
|
-
}
|
|
1101
|
-
async function ensureContentOperateFile(fs, params) {
|
|
1102
|
-
const projectId = params.projectStorageId ?? await ensureProjectId(params.projectPath, fs);
|
|
1103
|
-
await writeContentOperateFile(fs, {
|
|
1104
|
-
contentFolder: params.contentFolder,
|
|
1105
|
-
projectId,
|
|
1106
|
-
contentType: params.contentType
|
|
1107
|
-
});
|
|
1108
|
-
}
|
|
1109
|
-
function escapeXml(str) {
|
|
1110
|
-
if (str === null || str === undefined) {
|
|
1111
|
-
return "";
|
|
1112
|
-
}
|
|
1113
|
-
return String(str).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
1114
|
-
}
|
|
1115
|
-
function optionalElement(name, value) {
|
|
1116
|
-
if (value === undefined || value === "")
|
|
1117
|
-
return "";
|
|
1118
|
-
return ` <${name}>${escapeXml(value)}</${name}>
|
|
1119
|
-
`;
|
|
1120
|
-
}
|
|
1121
|
-
function generateDependenciesXml(dependencies) {
|
|
1122
|
-
if (!dependencies || dependencies.length === 0)
|
|
1123
|
-
return "";
|
|
1124
|
-
const deps = dependencies.map((d) => ` <dependency id="${escapeXml(d.id)}" version="${escapeXml(d.version)}" />`).join(`
|
|
1125
|
-
`);
|
|
1126
|
-
return ` <dependencies>
|
|
1127
|
-
${deps}
|
|
1128
|
-
</dependencies>
|
|
1129
|
-
`;
|
|
1130
|
-
}
|
|
1131
|
-
function generateRepositoryXml(packageInfo) {
|
|
1132
|
-
if (!packageInfo.repositoryType || !packageInfo.repositoryUrl)
|
|
1133
|
-
return "";
|
|
1134
|
-
let repoXml = ` <repository type="${escapeXml(packageInfo.repositoryType)}" url="${escapeXml(packageInfo.repositoryUrl)}"`;
|
|
1135
|
-
if (packageInfo.repositoryBranch) {
|
|
1136
|
-
repoXml += ` branch="${escapeXml(packageInfo.repositoryBranch)}"`;
|
|
1137
|
-
}
|
|
1138
|
-
if (packageInfo.repositoryCommit) {
|
|
1139
|
-
repoXml += ` commit="${escapeXml(packageInfo.repositoryCommit)}"`;
|
|
1140
|
-
}
|
|
1141
|
-
repoXml += ` />
|
|
1142
|
-
`;
|
|
1143
|
-
return repoXml;
|
|
1144
|
-
}
|
|
1145
|
-
function generateNuspecXml(packageInfo) {
|
|
1146
|
-
const author = packageInfo.author?.trim() || "UiPath";
|
|
1147
|
-
const description = packageInfo.description?.trim() || "Created by UiPath";
|
|
1148
|
-
const title = packageInfo.title?.trim() || packageInfo.id;
|
|
1149
|
-
const requireLicenseAcceptance = packageInfo.requireLicenseAcceptance === true ? "true" : "false";
|
|
1150
|
-
const releaseNotes = packageInfo.releaseNotes ?? "";
|
|
1151
|
-
const xml = `\uFEFF<?xml version="1.0" encoding="utf-8"?>
|
|
1152
|
-
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
|
1153
|
-
<metadata>
|
|
1154
|
-
<id>${escapeXml(packageInfo.id)}</id>
|
|
1155
|
-
<version>${escapeXml(packageInfo.version)}</version>
|
|
1156
|
-
<title>${escapeXml(title)}</title>
|
|
1157
|
-
<authors>${escapeXml(author)}</authors>
|
|
1158
|
-
<requireLicenseAcceptance>${requireLicenseAcceptance}</requireLicenseAcceptance>
|
|
1159
|
-
<description>${escapeXml(description)}</description>
|
|
1160
|
-
<releaseNotes>${escapeXml(releaseNotes)}</releaseNotes>
|
|
1161
|
-
${optionalElement("tags", packageInfo.tags)}${optionalElement("iconUrl", packageInfo.iconUrl)}${optionalElement("projectUrl", packageInfo.projectUrl)}${optionalElement("licenseUrl", packageInfo.licenseUrl)}${optionalElement("copyright", packageInfo.copyright)}${generateRepositoryXml(packageInfo)}${generateDependenciesXml(packageInfo.dependencies)} </metadata>
|
|
1162
|
-
</package>
|
|
1163
|
-
`;
|
|
1164
|
-
return xml;
|
|
1165
|
-
}
|
|
1166
|
-
function generatePsmdcpXml(packageInfo) {
|
|
1167
|
-
const author = packageInfo.author?.trim() || "UiPath";
|
|
1168
|
-
const description = packageInfo.description?.trim() || "Created by UiPath";
|
|
1169
|
-
return `<?xml version="1.0" encoding="utf-8"?>
|
|
1170
|
-
<coreProperties xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.openxmlformats.org/package/2006/metadata/core-properties">
|
|
1171
|
-
<dc:creator>${escapeXml(author)}</dc:creator>
|
|
1172
|
-
<dc:description>${escapeXml(description)}</dc:description>
|
|
1173
|
-
<dc:identifier>${escapeXml(packageInfo.id)}</dc:identifier>
|
|
1174
|
-
<version>${escapeXml(packageInfo.version)}</version>
|
|
1175
|
-
<keywords></keywords>
|
|
1176
|
-
<lastModifiedBy>NuGet.Packaging, Version=6.12.1.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35;.NET 5.0</lastModifiedBy>
|
|
1177
|
-
</coreProperties>`;
|
|
1178
|
-
}
|
|
1179
|
-
|
|
1180
|
-
class NugetPackager {
|
|
1181
|
-
fileSystem;
|
|
1182
|
-
constructor(fileSystem) {
|
|
1183
|
-
this.fileSystem = fileSystem;
|
|
1184
|
-
}
|
|
1185
|
-
async packAsync(rootPath, packageInfo, outputPath) {
|
|
1186
|
-
const normalizedOutputPath = Path.normalize(outputPath);
|
|
1187
|
-
const nuspecXml = generateNuspecXml(packageInfo);
|
|
1188
|
-
const nuspecFileName = `${packageInfo.id}.nuspec`;
|
|
1189
|
-
const fileEntries = await Path.walkDirectory(this.fileSystem, rootPath);
|
|
1190
|
-
const zipContents = {};
|
|
1191
|
-
const encoder = new TextEncoder;
|
|
1192
|
-
const psmdcpId = Array.from({ length: 4 }, () => Math.floor(Math.random() * 4294967296).toString(16).padStart(8, "0")).join("");
|
|
1193
|
-
const psmdcpFileName = `${psmdcpId}.psmdcp`;
|
|
1194
|
-
const psmdcpPath = `package/services/metadata/core-properties/${psmdcpFileName}`;
|
|
1195
|
-
const contentTypesXml = `<?xml version="1.0" encoding="utf-8"?>
|
|
1196
|
-
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
|
|
1197
|
-
<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />
|
|
1198
|
-
<Default Extension="psmdcp" ContentType="application/vnd.openxmlformats-package.core-properties+xml" />
|
|
1199
|
-
<Default Extension="uiproj" ContentType="application/octet" />
|
|
1200
|
-
<Default Extension="json" ContentType="application/octet" />
|
|
1201
|
-
<Default Extension="nuspec" ContentType="application/octet" />
|
|
1202
|
-
</Types>`;
|
|
1203
|
-
zipContents["[Content_Types].xml"] = encoder.encode(contentTypesXml);
|
|
1204
|
-
const manifestRelId = `R${Date.now().toString(16).toUpperCase()}`;
|
|
1205
|
-
const corePropsRelId = `R${(Date.now() + 1).toString(16).toUpperCase()}`;
|
|
1206
|
-
const relsXml = `<?xml version="1.0" encoding="utf-8"?>
|
|
1207
|
-
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
1208
|
-
<Relationship Type="http://schemas.microsoft.com/packaging/2010/07/manifest" Target="/${nuspecFileName}" Id="${manifestRelId}" />
|
|
1209
|
-
<Relationship Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="/${psmdcpPath}" Id="${corePropsRelId}" />
|
|
1210
|
-
</Relationships>`;
|
|
1211
|
-
zipContents["_rels/.rels"] = encoder.encode(relsXml);
|
|
1212
|
-
zipContents[psmdcpPath] = encoder.encode(generatePsmdcpXml(packageInfo));
|
|
1213
|
-
zipContents[nuspecFileName] = encoder.encode(nuspecXml);
|
|
1214
|
-
for (const entry of fileEntries) {
|
|
1215
|
-
const content = await this.fileSystem.readFile(entry.absolutePath);
|
|
1216
|
-
if (content !== null) {
|
|
1217
|
-
zipContents[entry.relativePath] = content;
|
|
1218
|
-
}
|
|
1219
|
-
}
|
|
1220
|
-
const zippedData = zipSync(zipContents);
|
|
1221
|
-
await this.fileSystem.writeFile(normalizedOutputPath, zippedData);
|
|
1222
|
-
return {
|
|
1223
|
-
outputPath: normalizedOutputPath
|
|
1224
|
-
};
|
|
1225
|
-
}
|
|
1226
|
-
}
|
|
1227
|
-
|
|
1228
|
-
class ProjectTool {
|
|
1229
|
-
fileSystem;
|
|
1230
|
-
logger;
|
|
1231
|
-
static ProjectFileName = "project.uiproj";
|
|
1232
|
-
constructor(fileSystem, logger) {
|
|
1233
|
-
this.fileSystem = fileSystem;
|
|
1234
|
-
this.logger = logger;
|
|
1235
|
-
}
|
|
1236
|
-
async restoreAsync(_options, _cancellationToken) {
|
|
1237
|
-
this.logger.info("Restore operation is a noop");
|
|
1238
|
-
return ToolResult.success();
|
|
1239
|
-
}
|
|
1240
|
-
async validateAsync(_options, _cancellationToken) {
|
|
1241
|
-
this.logger.info("Validate operation is a noop");
|
|
1242
|
-
return ToolResult.success();
|
|
1243
|
-
}
|
|
1244
|
-
async buildAsync(_options, _cancellationToken) {
|
|
1245
|
-
this.logger.info("Build operation is a noop");
|
|
1246
|
-
return ToolResult.success();
|
|
1247
|
-
}
|
|
1248
|
-
async packAsync(_options, _cancellationToken) {
|
|
1249
|
-
this.logger.info("Pack operation is a noop");
|
|
1250
|
-
return ToolResult.success();
|
|
1251
|
-
}
|
|
1252
|
-
async cleanupAsync(_options, _cancellationToken) {
|
|
1253
|
-
this.logger.info("Cleanup operation is a noop");
|
|
1254
|
-
return ToolResult.success();
|
|
1255
|
-
}
|
|
1256
|
-
async getUiProjectAsync(projectPath) {
|
|
1257
|
-
const filePath = Path.join(projectPath, ProjectTool.ProjectFileName);
|
|
1258
|
-
if (!await this.fileSystem.exists(filePath)) {
|
|
1259
|
-
return;
|
|
1260
|
-
}
|
|
1261
|
-
const raw = await this.fileSystem.readFile(filePath);
|
|
1262
|
-
if (!raw) {
|
|
1263
|
-
return;
|
|
1264
|
-
}
|
|
1265
|
-
const json = typeof raw === "string" ? raw : new TextDecoder("utf-8").decode(raw);
|
|
1266
|
-
return JSON.parse(json);
|
|
1267
|
-
}
|
|
1268
|
-
async dispose() {}
|
|
1269
|
-
}
|
|
1270
|
-
class ToolsFactoryRepository {
|
|
1271
|
-
projectFactoryMap = new Map;
|
|
1272
|
-
solutionFactory = null;
|
|
1273
|
-
registerProjectToolFactory(factory) {
|
|
1274
|
-
for (const type of factory.supportedTypes) {
|
|
1275
|
-
const existing = this.projectFactoryMap.get(type);
|
|
1276
|
-
if (existing) {
|
|
1277
|
-
if (existing.constructor?.name !== factory.constructor?.name) {
|
|
1278
|
-
console.warn(`Tool factory conflict for project type '${type}': ` + `'${existing.constructor?.name}' already registered, ` + `ignoring '${factory.constructor?.name}'.`);
|
|
1279
|
-
}
|
|
1280
|
-
continue;
|
|
1281
|
-
}
|
|
1282
|
-
this.projectFactoryMap.set(type, factory);
|
|
1283
|
-
}
|
|
1284
|
-
}
|
|
1285
|
-
registerSolutionToolFactory(factory) {
|
|
1286
|
-
this.solutionFactory = factory;
|
|
1287
|
-
}
|
|
1288
|
-
getSolutionToolFactory() {
|
|
1289
|
-
if (!this.solutionFactory) {
|
|
1290
|
-
throw new Error("No solution tool factory is registered");
|
|
1291
|
-
}
|
|
1292
|
-
return this.solutionFactory;
|
|
1293
|
-
}
|
|
1294
|
-
canHandleProject(projectType) {
|
|
1295
|
-
return this.projectFactoryMap.has(projectType);
|
|
1296
|
-
}
|
|
1297
|
-
getProjectToolFactory(projectType) {
|
|
1298
|
-
const factory = this.projectFactoryMap.get(projectType);
|
|
1299
|
-
if (!factory) {
|
|
1300
|
-
throw new Error(`Cannot pack project type '${projectType}': no packager is installed for it.`);
|
|
1301
|
-
}
|
|
1302
|
-
return factory;
|
|
1303
|
-
}
|
|
1304
|
-
reset() {
|
|
1305
|
-
this.projectFactoryMap.clear();
|
|
1306
|
-
this.solutionFactory = null;
|
|
1307
|
-
}
|
|
1308
|
-
}
|
|
1309
|
-
var REGISTRY_KEY = Symbol.for("@uipath/solutionpackager-tool-core/toolsFactoryRepository");
|
|
1310
|
-
var _global = globalThis;
|
|
1311
|
-
if (!_global[REGISTRY_KEY]) {
|
|
1312
|
-
_global[REGISTRY_KEY] = new ToolsFactoryRepository;
|
|
1313
|
-
}
|
|
1314
|
-
var toolsFactoryRepository2 = _global[REGISTRY_KEY];
|
|
1315
|
-
|
|
1316
|
-
// ../packager/packager-tool-case/src/case-bpmn-compiler.ts
|
|
1317
|
-
var COMPILER_KEY = Symbol.for("@uipath/packager-tool-case/caseBpmnCompiler");
|
|
1318
|
-
var _global2 = globalThis;
|
|
1319
|
-
function registerCaseBpmnCompiler(caseBpmnCompiler) {
|
|
1320
|
-
_global2[COMPILER_KEY] = caseBpmnCompiler;
|
|
1321
|
-
}
|
|
1322
|
-
function getCaseBpmnCompiler() {
|
|
1323
|
-
return _global2[COMPILER_KEY];
|
|
1324
|
-
}
|
|
1325
|
-
|
|
1326
|
-
// ../packager/packager-tool-case/src/case-tool.ts
|
|
1327
|
-
var CaseConstants = {
|
|
1328
|
-
EntryPointsFileName: "entry-points.json",
|
|
1329
|
-
BindingsV2FileName: "bindings_v2.json",
|
|
1330
|
-
CasePlanFileName: "caseplan.json",
|
|
1331
|
-
CompiledBpmnFileName: "caseplan.json.bpmn"
|
|
1332
|
-
};
|
|
1333
|
-
|
|
1334
|
-
class CaseTool extends ProjectTool {
|
|
1335
|
-
_temporaryStorage;
|
|
1336
|
-
constructor(fileSystem, logger) {
|
|
1337
|
-
super(fileSystem, logger);
|
|
1338
|
-
this._temporaryStorage = new TemporaryStorageService(fileSystem);
|
|
1339
|
-
}
|
|
1340
|
-
async restoreAsync(_options, _cancellationToken) {
|
|
1341
|
-
this.logger.info("Restore operation is not required for Case Management projects");
|
|
1342
|
-
return ToolResult.success();
|
|
1343
|
-
}
|
|
1344
|
-
async validateAsync(_options, _cancellationToken) {
|
|
1345
|
-
this.logger.info("Validate operation is not required for Case Management projects");
|
|
1346
|
-
return ToolResult.success();
|
|
1347
|
-
}
|
|
1348
|
-
async buildAsync(options, _cancellationToken) {
|
|
1349
|
-
const tempFolder = await this._temporaryStorage.getTempFolderPath();
|
|
1350
|
-
const localBuildFolder = Path.join(tempFolder, NugetConstants.OutputFolderName);
|
|
1351
|
-
const contentFolder = Path.join(localBuildFolder, NugetConstants.ContentFolderName);
|
|
1352
|
-
try {
|
|
1353
|
-
this.logger.progress("Copying files...");
|
|
1354
|
-
await this.copyFiles(options.projectPath, contentFolder);
|
|
1355
|
-
this.logger.progress("Compiling case plan to BPMN...");
|
|
1356
|
-
const compileResult = await this.compileCasePlan(options.projectPath, contentFolder);
|
|
1357
|
-
if (!compileResult.isSuccess) {
|
|
1358
|
-
return compileResult;
|
|
1359
|
-
}
|
|
1360
|
-
this.logger.progress("Creating operate.json file...");
|
|
1361
|
-
await this.createOperateFile(options, contentFolder);
|
|
1362
|
-
this.logger.progress("Creating package-descriptor.json file...");
|
|
1363
|
-
await this.createPackageDescriptor(localBuildFolder, contentFolder);
|
|
1364
|
-
return new ToolResult(ToolErrorCodes.Success, "done", [
|
|
1365
|
-
localBuildFolder
|
|
1366
|
-
]);
|
|
1367
|
-
} catch (error) {
|
|
1368
|
-
const errorMessage = error instanceof Error ? error.toString() : String(error);
|
|
1369
|
-
this.logger.error(errorMessage);
|
|
1370
|
-
return ToolResult.error(ToolErrorCodes.InternalError, "An error occurred while building Case Management project files");
|
|
1371
|
-
}
|
|
1372
|
-
}
|
|
1373
|
-
async packAsync(options, cancellationToken) {
|
|
1374
|
-
const buildResult = await this.buildAsync(options, cancellationToken);
|
|
1375
|
-
if (!buildResult.isSuccess) {
|
|
1376
|
-
return buildResult;
|
|
1377
|
-
}
|
|
1378
|
-
const localBuildFolder = buildResult.packages[0];
|
|
1379
|
-
try {
|
|
1380
|
-
this.logger.progress("Creating NuGet package...");
|
|
1381
|
-
const nupkgFileName = `${options.package.id}.${options.package.version}.nupkg`;
|
|
1382
|
-
const nupkgPath = Path.join(options.outputPath, nupkgFileName);
|
|
1383
|
-
const packager = new NugetPackager(this.fileSystem);
|
|
1384
|
-
const result = await packager.packAsync(localBuildFolder, options.package, nupkgPath);
|
|
1385
|
-
this.logger.progress("Package created successfully");
|
|
1386
|
-
return new ToolResult(ToolErrorCodes.Success, "done", [
|
|
1387
|
-
result.outputPath
|
|
1388
|
-
]);
|
|
1389
|
-
} catch (error) {
|
|
1390
|
-
const errorMessage = error instanceof Error ? error.toString() : String(error);
|
|
1391
|
-
this.logger.error(errorMessage);
|
|
1392
|
-
return ToolResult.error(ToolErrorCodes.InternalError, "An error occurred while packing Case Management project");
|
|
1393
|
-
}
|
|
1394
|
-
}
|
|
1395
|
-
async dispose() {
|
|
1396
|
-
this.logger.info("Disposing Case Management Tool");
|
|
1397
|
-
try {
|
|
1398
|
-
await this._temporaryStorage.cleanup();
|
|
1399
|
-
} catch {}
|
|
1400
|
-
}
|
|
1401
|
-
async copyFiles(sourcePath, contentFolder) {
|
|
1402
|
-
await this.fileSystem.mkdir(contentFolder);
|
|
1403
|
-
const files = await this.fileSystem.readdir(sourcePath);
|
|
1404
|
-
for (const file of files) {
|
|
1405
|
-
const sourceFile = Path.join(sourcePath, file);
|
|
1406
|
-
const stat = await this.fileSystem.stat(sourceFile);
|
|
1407
|
-
if (stat?.isFile()) {
|
|
1408
|
-
const content = await this.fileSystem.readFile(sourceFile);
|
|
1409
|
-
if (content) {
|
|
1410
|
-
const destinationFile = Path.join(contentFolder, file);
|
|
1411
|
-
await this.fileSystem.writeFile(destinationFile, content);
|
|
1412
|
-
}
|
|
1413
|
-
}
|
|
1414
|
-
}
|
|
1415
|
-
}
|
|
1416
|
-
async compileCasePlan(projectPath, contentFolder) {
|
|
1417
|
-
const compile = getCaseBpmnCompiler();
|
|
1418
|
-
const casePlanPath = Path.join(projectPath, CaseConstants.CasePlanFileName);
|
|
1419
|
-
if (!compile || !await this.fileSystem.exists(casePlanPath)) {
|
|
1420
|
-
return this.checkEntryPointBpmnPresent(contentFolder);
|
|
1421
|
-
}
|
|
1422
|
-
const casePlan = await this.fileSystem.readFile(casePlanPath);
|
|
1423
|
-
if (!casePlan || casePlan.length === 0) {
|
|
1424
|
-
return ToolResult.error(ToolErrorCodes.InternalError, `'${CaseConstants.CasePlanFileName}' in ${projectPath} is empty, so there is nothing to compile into '${CaseConstants.CompiledBpmnFileName}'. Author the case plan, or re-scaffold the project with 'uip maestro case init'.`);
|
|
1425
|
-
}
|
|
1426
|
-
try {
|
|
1427
|
-
const bpmnXml = await compile(new TextDecoder().decode(casePlan));
|
|
1428
|
-
await this.fileSystem.writeFile(Path.join(contentFolder, CaseConstants.CompiledBpmnFileName), bpmnXml);
|
|
1429
|
-
return await this.checkEntryPointBpmnPresent(contentFolder);
|
|
1430
|
-
} catch (error) {
|
|
1431
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
1432
|
-
this.logger.error(message);
|
|
1433
|
-
return ToolResult.error(ToolErrorCodes.InternalError, `Failed to compile '${CaseConstants.CasePlanFileName}' into '${CaseConstants.CompiledBpmnFileName}': ${message}. Run 'uip maestro case validate ${projectPath}' to find the problem in the case plan, then pack again.`);
|
|
1434
|
-
}
|
|
1435
|
-
}
|
|
1436
|
-
async checkEntryPointBpmnPresent(contentFolder) {
|
|
1437
|
-
const referenced = await this.readEntryPointBpmnFiles(contentFolder);
|
|
1438
|
-
if (referenced === null) {
|
|
1439
|
-
return ToolResult.error(ToolErrorCodes.InternalError, `'${CaseConstants.EntryPointsFileName}' could not be read as JSON, so pack cannot check that the BPMN it declares is in the package. Fix or re-scaffold '${CaseConstants.EntryPointsFileName}', then pack again.`);
|
|
1440
|
-
}
|
|
1441
|
-
if (referenced.length === 0) {
|
|
1442
|
-
return ToolResult.success();
|
|
1443
|
-
}
|
|
1444
|
-
const contentFiles = await this.fileSystem.readdir(contentFolder);
|
|
1445
|
-
const missing = referenced.filter((file) => !contentFiles.includes(file));
|
|
1446
|
-
if (missing.length === 0) {
|
|
1447
|
-
return ToolResult.success();
|
|
1448
|
-
}
|
|
1449
|
-
const fix = missing.includes(CaseConstants.CompiledBpmnFileName) ? `Author '${CaseConstants.CasePlanFileName}' so pack can compile it (see 'uip maestro case init'), then pack again.` : `Add the missing file to the project, or point '${CaseConstants.EntryPointsFileName}' at the BPMN the project does ship, then pack again.`;
|
|
1450
|
-
return ToolResult.error(ToolErrorCodes.InternalError, `'${CaseConstants.EntryPointsFileName}' points at ${missing.map((f) => `'content/${f}'`).join(", ")}, which the package does not contain, so it would deploy and activate and then fault every job. ${fix}`);
|
|
1451
|
-
}
|
|
1452
|
-
async readEntryPointBpmnFiles(contentFolder) {
|
|
1453
|
-
const entryPointsPath = Path.join(contentFolder, CaseConstants.EntryPointsFileName);
|
|
1454
|
-
if (!await this.fileSystem.exists(entryPointsPath)) {
|
|
1455
|
-
return [];
|
|
1456
|
-
}
|
|
1457
|
-
const raw = await this.fileSystem.readFile(entryPointsPath);
|
|
1458
|
-
if (!raw || raw.length === 0) {
|
|
1459
|
-
return null;
|
|
1460
|
-
}
|
|
1461
|
-
try {
|
|
1462
|
-
const parsed = JSON.parse(new TextDecoder().decode(raw));
|
|
1463
|
-
const names = (parsed.entryPoints ?? []).map((entry) => entry.filePath ?? "").map((filePath) => filePath.split("#")[0]).map((filePath) => filePath.split("/").pop() ?? "").filter((name) => name.endsWith(".bpmn"));
|
|
1464
|
-
return [...new Set(names)];
|
|
1465
|
-
} catch {
|
|
1466
|
-
return null;
|
|
1467
|
-
}
|
|
1468
|
-
}
|
|
1469
|
-
async createOperateFile(options, contentFolder) {
|
|
1470
|
-
await ensureContentOperateFile(this.fileSystem, {
|
|
1471
|
-
contentFolder,
|
|
1472
|
-
projectPath: options.projectPath,
|
|
1473
|
-
projectStorageId: options.projectStorageId,
|
|
1474
|
-
contentType: ProjectTypes.CaseManagement
|
|
1475
|
-
});
|
|
1476
|
-
}
|
|
1477
|
-
async createPackageDescriptor(localBuildFolder, contentFolder) {
|
|
1478
|
-
const descriptorFiles = {};
|
|
1479
|
-
descriptorFiles[NugetConstants.OperateFileName] = Path.join(NugetConstants.ContentFolderName, NugetConstants.OperateFileName);
|
|
1480
|
-
descriptorFiles[CaseConstants.EntryPointsFileName] = Path.join(NugetConstants.ContentFolderName, CaseConstants.EntryPointsFileName);
|
|
1481
|
-
descriptorFiles[NugetConstants.BindingsFileId] = Path.join(NugetConstants.ContentFolderName, CaseConstants.BindingsV2FileName);
|
|
1482
|
-
const contentFiles = await this.fileSystem.readdir(contentFolder);
|
|
1483
|
-
for (const file of contentFiles) {
|
|
1484
|
-
if (file.endsWith(".bpmn")) {
|
|
1485
|
-
descriptorFiles[file] = Path.join(NugetConstants.ContentFolderName, file);
|
|
1486
|
-
}
|
|
1487
|
-
}
|
|
1488
|
-
const packageDescriptorPath = Path.join(localBuildFolder, NugetConstants.ContentFolderName, NugetConstants.PackageDescriptorFileName);
|
|
1489
|
-
const packageDescriptorJson = JSON.stringify({
|
|
1490
|
-
$schema: "https://cloud.uipath.com/draft/2024-12/package-descriptor",
|
|
1491
|
-
files: descriptorFiles
|
|
1492
|
-
}, null, 2);
|
|
1493
|
-
await this.fileSystem.writeFile(packageDescriptorPath, packageDescriptorJson);
|
|
1494
|
-
}
|
|
1495
|
-
}
|
|
1496
|
-
|
|
1497
|
-
// ../packager/packager-tool-case/src/case-tool-factory.ts
|
|
1498
|
-
class CaseToolFactory {
|
|
1499
|
-
supportedTypes = [
|
|
1500
|
-
ProjectTypes.CaseManagement
|
|
1501
|
-
];
|
|
1502
|
-
async createAsync(logger, fileSystem) {
|
|
1503
|
-
return new CaseTool(fileSystem, logger);
|
|
1504
|
-
}
|
|
1505
|
-
}
|
|
1506
|
-
|
|
1507
|
-
// ../packager/packager-tool-case/src/index.ts
|
|
1508
|
-
toolsFactoryRepository2.registerProjectToolFactory(new CaseToolFactory);
|
|
1509
|
-
|
|
1510
14
|
// ../packager/packager-tool-case/src/node.ts
|
|
1511
15
|
var compileCasePlan = async (casePlanJson) => {
|
|
1512
16
|
const { serializeCaseDiskJsonToBpmnAndRulesJson } = await import("./index-k4xz16db.js").then((m)=>__toESM(m.default,1));
|
|
@@ -1526,4 +30,4 @@ export {
|
|
|
1526
30
|
registerPackagerFactories
|
|
1527
31
|
};
|
|
1528
32
|
|
|
1529
|
-
//# debugId=
|
|
33
|
+
//# debugId=59E72E6560C763B364756E2164756E21
|