@uipath/packager-tool-workflowcompiler-browser 0.0.33 → 1.196.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/i18n/locales/en.d.ts +4 -0
- package/dist/index.js +169 -59
- package/dist/pack-result-processor.d.ts +2 -2
- package/dist/project-bundle-executor.d.ts +14 -5
- package/package.json +11 -29
- package/src/i18n/locales/de.json +6 -2
- package/src/i18n/locales/en.ts +8 -0
- package/src/i18n/locales/es-MX.json +6 -2
- package/src/i18n/locales/es.json +6 -2
- package/src/i18n/locales/fr.json +6 -2
- package/src/i18n/locales/ja.json +6 -2
- package/src/i18n/locales/ko.json +6 -2
- package/src/i18n/locales/pt-BR.json +6 -2
- package/src/i18n/locales/pt.json +6 -2
- package/src/i18n/locales/ro.json +6 -2
- package/src/i18n/locales/ru.json +6 -2
- package/src/i18n/locales/tr.json +6 -2
- package/src/i18n/locales/zh-CN.json +6 -2
- package/src/i18n/locales/zh-TW.json +6 -2
- package/src/i18n/locales/zu.json +6 -2
- package/src/pack-result-processor.ts +3 -5
- package/src/packager-hub-connection.ts +15 -40
- package/src/project-bundle-executor.ts +146 -2
package/src/i18n/locales/en.ts
CHANGED
|
@@ -21,6 +21,8 @@ export const en = {
|
|
|
21
21
|
deletingBucket: "Deleting temporary storage bucket {bucketId}",
|
|
22
22
|
copyingFiles:
|
|
23
23
|
"Copying {count} file(s) for project {designId} to {path}",
|
|
24
|
+
offloadingInputArguments:
|
|
25
|
+
"Input arguments are too large ({length} chars) to send inline; uploading them as a file attachment",
|
|
24
26
|
},
|
|
25
27
|
errors: {
|
|
26
28
|
missingConnectionInfo:
|
|
@@ -53,6 +55,12 @@ export const en = {
|
|
|
53
55
|
"Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
54
56
|
bundleOperationMismatch:
|
|
55
57
|
"Cannot mix {sessionOperation} and {entryOperation} in the same context",
|
|
58
|
+
createAttachmentFailed:
|
|
59
|
+
"Failed to create input arguments attachment ({status}): {errorText}",
|
|
60
|
+
attachmentResponseMalformed:
|
|
61
|
+
"Attachment creation response did not include an id and blob URI",
|
|
62
|
+
uploadInputArgumentsFailed:
|
|
63
|
+
"Failed to upload input arguments file ({status}): {statusText}",
|
|
56
64
|
},
|
|
57
65
|
},
|
|
58
66
|
} as const;
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "Los argumentos de entrada son demasiado grandes ({length} caracteres) para enviarlos en línea; se cargarán como un archivo adjunto"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "No se pudo crear el archivo adjunto de argumentos de entrada ({status}): {errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "La respuesta de creación del archivo adjunto no incluía un id ni un URI de blob",
|
|
33
|
+
"uploadInputArgumentsFailed": "No se pudo cargar el archivo de argumentos de entrada ({status}): {statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
package/src/i18n/locales/es.json
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "Los argumentos de entrada son demasiado grandes ({length} caracteres) para enviarlos en línea; se cargarán como un archivo adjunto"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "No se pudo crear el archivo adjunto de argumentos de entrada ({status}): {errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "La respuesta de creación del archivo adjunto no incluía un id ni un URI de blob",
|
|
33
|
+
"uploadInputArgumentsFailed": "No se pudo cargar el archivo de argumentos de entrada ({status}): {statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
package/src/i18n/locales/fr.json
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "Les arguments d'entrée sont trop volumineux ({length} caractères) pour être envoyés en ligne ; ils seront chargés en tant que pièce jointe"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "Échec de la création de la pièce jointe des arguments d'entrée ({status}) : {errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "La réponse de création de la pièce jointe ne contenait pas d'id ni d'URI de blob",
|
|
33
|
+
"uploadInputArgumentsFailed": "Échec du chargement du fichier des arguments d'entrée ({status}) : {statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
package/src/i18n/locales/ja.json
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "入力引数が大きすぎるため ({length} 文字)、インラインで送信できません。ファイル添付としてアップロードします"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "入力引数の添付ファイルの作成に失敗しました ({status}):{errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "添付ファイルの作成応答に id と blob URI が含まれていませんでした",
|
|
33
|
+
"uploadInputArgumentsFailed": "入力引数ファイルのアップロードに失敗しました ({status}):{statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
package/src/i18n/locales/ko.json
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "입력 인수가 너무 커서({length}자) 인라인으로 보낼 수 없습니다. 파일 첨부로 업로드합니다"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "입력 인수 첨부 파일을 만들지 못했습니다({status}): {errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "첨부 파일 생성 응답에 id와 blob URI가 포함되어 있지 않습니다",
|
|
33
|
+
"uploadInputArgumentsFailed": "입력 인수 파일을 업로드하지 못했습니다({status}): {statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "Os argumentos de entrada são muito grandes ({length} caracteres) para serem enviados inline; eles serão carregados como um anexo de arquivo"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "Falha ao criar o anexo dos argumentos de entrada ({status}): {errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "A resposta de criação do anexo não incluiu um id nem uma URI de blob",
|
|
33
|
+
"uploadInputArgumentsFailed": "Falha ao fazer upload do arquivo de argumentos de entrada ({status}): {statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
package/src/i18n/locales/pt.json
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "Os argumentos de entrada são demasiado grandes ({length} carateres) para serem enviados inline; serão carregados como um anexo de ficheiro"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "Falha ao criar o anexo dos argumentos de entrada ({status}): {errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "A resposta de criação do anexo não incluía um id nem um URI de blob",
|
|
33
|
+
"uploadInputArgumentsFailed": "Falha ao carregar o ficheiro de argumentos de entrada ({status}): {statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
package/src/i18n/locales/ro.json
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "Argumentele de intrare sunt prea mari ({length} caractere) pentru a fi trimise inline; vor fi încărcate ca atașament de fișier"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "Crearea atașamentului cu argumentele de intrare a eșuat ({status}): {errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "Răspunsul de creare a atașamentului nu a inclus un id și un URI de blob",
|
|
33
|
+
"uploadInputArgumentsFailed": "Încărcarea fișierului cu argumentele de intrare a eșuat ({status}): {statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
package/src/i18n/locales/ru.json
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "Входные аргументы слишком велики ({length} символов) для встроенной отправки; они будут загружены как вложение файла"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "Не удалось создать вложение с входными аргументами ({status}): {errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "Ответ на создание вложения не содержал id и blob-URI",
|
|
33
|
+
"uploadInputArgumentsFailed": "Не удалось загрузить файл входных аргументов ({status}): {statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
package/src/i18n/locales/tr.json
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "Giriş bağımsız değişkenleri satır içi gönderilemeyecek kadar büyük ({length} karakter); dosya eki olarak yüklenecek"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "Giriş bağımsız değişkenleri eki oluşturulamadı ({status}): {errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "Ek oluşturma yanıtı bir kimlik ve blob URI'si içermiyordu",
|
|
33
|
+
"uploadInputArgumentsFailed": "Giriş bağımsız değişkenleri dosyası yüklenemedi ({status}): {statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "输入参数过大({length} 个字符),无法内联发送;将作为文件附件上传"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "无法创建输入参数附件 ({status}):{errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "附件创建响应未包含 id 和 blob URI",
|
|
33
|
+
"uploadInputArgumentsFailed": "无法上传输入参数文件 ({status}):{statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "輸入引數過大({length} 個字元),無法內嵌傳送;將以檔案附件形式上傳"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "無法建立輸入引數附件 ({status}):{errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "附件建立回應未包含 id 和 blob URI",
|
|
33
|
+
"uploadInputArgumentsFailed": "無法上傳輸入引數檔案 ({status}):{statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
package/src/i18n/locales/zu.json
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"distributingPackages": "Distributing packages for {count} project(s)",
|
|
9
9
|
"cleaningUpTempDir": "Cleaning up temporary directory {path}",
|
|
10
10
|
"deletingBucket": "Deleting temporary storage bucket {bucketId}",
|
|
11
|
-
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}"
|
|
11
|
+
"copyingFiles": "Copying {count} file(s) for project {designId} to {path}",
|
|
12
|
+
"offloadingInputArguments": "Izimpikiswano zokufaka zinkulu kakhulu ({length} izinhlamvu) ukuze zithunyelwe ngaphakathi; zizolayishwa njengesinamathiselo sefayela"
|
|
12
13
|
},
|
|
13
14
|
"errors": {
|
|
14
15
|
"missingConnectionInfo": "Missing connection info (cloudUrl, accessToken, or folderId)",
|
|
@@ -26,7 +27,10 @@
|
|
|
26
27
|
"noMatchingProject": "No matching project found for path: {projectPath}",
|
|
27
28
|
"noOutputForProject": "No output found for project {designId}",
|
|
28
29
|
"distributePackagesFailed": "Failed to distribute packages for {designId}: {message}",
|
|
29
|
-
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects"
|
|
30
|
+
"sessionTimeout": "Session timed out waiting for projects: received {received} of {expected} expected projects",
|
|
31
|
+
"createAttachmentFailed": "Yehlulekile ukudala isinamathiselo sezimpikiswano zokufaka ({status}): {errorText}",
|
|
32
|
+
"attachmentResponseMalformed": "Impendulo yokudala isinamathiselo ayifakanga i-id ne-blob URI",
|
|
33
|
+
"uploadInputArgumentsFailed": "Yehlulekile ukulayisha ifayela lezimpikiswano zokufaka ({status}): {statusText}"
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
type IFileSystem,
|
|
4
4
|
type IProjectPackOptions,
|
|
5
5
|
type IToolLogger,
|
|
6
|
+
type IZipService,
|
|
6
7
|
type ProjectOperationContext,
|
|
7
8
|
ToolErrorCodes,
|
|
8
9
|
ToolResult,
|
|
@@ -22,14 +23,11 @@ interface ProjectResultEntry {
|
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
export class PackResultProcessor {
|
|
25
|
-
private readonly zipService: ZipService;
|
|
26
|
-
|
|
27
26
|
constructor(
|
|
28
27
|
private readonly fileSystem: IFileSystem,
|
|
29
28
|
private readonly logger?: IToolLogger,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
29
|
+
private readonly zipService: IZipService = new ZipService(fileSystem),
|
|
30
|
+
) {}
|
|
33
31
|
|
|
34
32
|
async processAsync(
|
|
35
33
|
bucketId: number,
|
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
} from "@microsoft/signalr";
|
|
7
7
|
import {
|
|
8
8
|
type IToolLogger,
|
|
9
|
-
LogLevel,
|
|
10
9
|
LogMessage,
|
|
11
10
|
translate,
|
|
12
11
|
} from "@uipath/solutionpackager-tool-core";
|
|
@@ -37,33 +36,6 @@ interface PackJobResult {
|
|
|
37
36
|
BucketId?: number;
|
|
38
37
|
}
|
|
39
38
|
|
|
40
|
-
interface PackAgentLogMessage {
|
|
41
|
-
Message: string;
|
|
42
|
-
LogLevel: string;
|
|
43
|
-
Source?: string;
|
|
44
|
-
SourceTarget?: string;
|
|
45
|
-
Progress?: number;
|
|
46
|
-
Code?: string;
|
|
47
|
-
FilePath?: string;
|
|
48
|
-
Line?: string;
|
|
49
|
-
Id?: string;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
function toLogLevel(level: string): LogLevel {
|
|
53
|
-
switch (level) {
|
|
54
|
-
case "Debug":
|
|
55
|
-
return LogLevel.Debug;
|
|
56
|
-
case "Information":
|
|
57
|
-
return LogLevel.Info;
|
|
58
|
-
case "Warning":
|
|
59
|
-
return LogLevel.Warn;
|
|
60
|
-
case "Error":
|
|
61
|
-
return LogLevel.Error;
|
|
62
|
-
default:
|
|
63
|
-
return LogLevel.Info;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
39
|
enum PackagerCommandType {
|
|
68
40
|
PeerDisconnected = "PeerDisconnected",
|
|
69
41
|
SetLogMessage = "SetLogMessage",
|
|
@@ -209,20 +181,23 @@ export class PackagerHubConnection {
|
|
|
209
181
|
private onLogMessage(jsonCommand: string): void {
|
|
210
182
|
if (!this.logger) return;
|
|
211
183
|
|
|
212
|
-
const command: ExecutorCommand<
|
|
213
|
-
JSON.parse(jsonCommand);
|
|
184
|
+
const command: ExecutorCommand<LogMessage> = JSON.parse(jsonCommand);
|
|
214
185
|
const agentLog = command.Argument1;
|
|
215
186
|
|
|
216
|
-
const
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
187
|
+
const logMessage = new LogMessage(
|
|
188
|
+
agentLog.message,
|
|
189
|
+
agentLog.logLevel,
|
|
190
|
+
{
|
|
191
|
+
source: agentLog.source,
|
|
192
|
+
sourceTarget: agentLog.sourceTarget,
|
|
193
|
+
progress: agentLog.progress,
|
|
194
|
+
code: agentLog.code,
|
|
195
|
+
filePath: agentLog.filePath,
|
|
196
|
+
line: agentLog.line,
|
|
197
|
+
id: agentLog.id,
|
|
198
|
+
},
|
|
199
|
+
agentLog.timestamp,
|
|
200
|
+
);
|
|
226
201
|
this.logger.logMessage(logMessage);
|
|
227
202
|
}
|
|
228
203
|
|
|
@@ -62,9 +62,28 @@ export interface IProjectBundleExecutor {
|
|
|
62
62
|
* Waits until all compatible projects have submitted their options,
|
|
63
63
|
* then executes a single bundled remote-agent operation and resolves all pending promises.
|
|
64
64
|
*/
|
|
65
|
+
/**
|
|
66
|
+
* Shape of the `POST /odata/Attachments` response. Orchestrator returns
|
|
67
|
+
* PascalCase (`Id`, `BlobFileAccess.Uri`); the camelCase fallbacks mirror the
|
|
68
|
+
* defensive reads in `@uipath/orchestrator-sdk`'s `uploadJobAttachment`.
|
|
69
|
+
*/
|
|
70
|
+
interface AttachmentResponse {
|
|
71
|
+
Id?: string;
|
|
72
|
+
id?: string;
|
|
73
|
+
BlobFileAccess?: { Uri: string };
|
|
74
|
+
blobFileAccess?: { Uri: string };
|
|
75
|
+
}
|
|
76
|
+
|
|
65
77
|
export class ProjectBundleExecutor implements IProjectBundleExecutor {
|
|
66
78
|
static readonly SESSION_TIMEOUT_MS = 1_800_000;
|
|
67
79
|
|
|
80
|
+
/**
|
|
81
|
+
* Maximum length (in characters) of the inline `inputArguments` payload
|
|
82
|
+
* accepted by the serverless jobs endpoint. Beyond this the arguments must
|
|
83
|
+
* be uploaded as a file attachment and referenced via `inputFile`.
|
|
84
|
+
*/
|
|
85
|
+
static readonly MAX_INLINE_INPUT_ARGUMENTS_LENGTH = 10_000;
|
|
86
|
+
|
|
68
87
|
private readonly sessions = new Map<string, BundleSession>();
|
|
69
88
|
private readonly pendingSessionCreations = new Map<
|
|
70
89
|
string,
|
|
@@ -416,6 +435,10 @@ export class ProjectBundleExecutor implements IProjectBundleExecutor {
|
|
|
416
435
|
return {
|
|
417
436
|
RelativePath: project?.ProjectRelativePath ?? "",
|
|
418
437
|
DesignId: project?.Id ?? "",
|
|
438
|
+
ProjectStorageId:
|
|
439
|
+
entry.operation === BundleOperation.Pack
|
|
440
|
+
? (entry.options.projectStorageId ?? "")
|
|
441
|
+
: "",
|
|
419
442
|
PackageId:
|
|
420
443
|
entry.operation === BundleOperation.Pack
|
|
421
444
|
? entry.options.package.id
|
|
@@ -444,19 +467,60 @@ export class ProjectBundleExecutor implements IProjectBundleExecutor {
|
|
|
444
467
|
if (firstEntry.operation === BundleOperation.Pack) {
|
|
445
468
|
executorInfo.Configuration = context.configuration;
|
|
446
469
|
const pkg = firstEntry.options.package;
|
|
470
|
+
executorInfo.Package = {
|
|
471
|
+
Name: pkg.id,
|
|
472
|
+
Version: pkg.version,
|
|
473
|
+
Author: pkg.author ?? "",
|
|
474
|
+
Description: pkg.description ?? "",
|
|
475
|
+
ReleaseNotes: pkg.releaseNotes ?? "",
|
|
476
|
+
Tags: pkg.tags ?? "",
|
|
477
|
+
IconUrl: pkg.iconUrl ?? "",
|
|
478
|
+
ProjectUrl: pkg.projectUrl ?? "",
|
|
479
|
+
RepositoryType: pkg.repositoryType ?? "",
|
|
480
|
+
RepositoryUrl: pkg.repositoryUrl ?? "",
|
|
481
|
+
RepositoryBranch: pkg.repositoryBranch ?? "",
|
|
482
|
+
RepositoryCommit: pkg.repositoryCommit ?? "",
|
|
483
|
+
};
|
|
484
|
+
// Flat fields retained for backward compatibility with agents that
|
|
485
|
+
// predate the nested Package structure.
|
|
447
486
|
executorInfo.Name = pkg.id;
|
|
448
487
|
executorInfo.Version = pkg.version;
|
|
449
488
|
executorInfo.Author = pkg.author ?? "";
|
|
450
489
|
executorInfo.Description = pkg.description ?? "";
|
|
490
|
+
executorInfo.ReleaseNotes = pkg.releaseNotes ?? "";
|
|
451
491
|
}
|
|
452
492
|
|
|
453
|
-
const
|
|
493
|
+
const inputArguments = JSON.stringify(executorInfo);
|
|
494
|
+
|
|
495
|
+
const body: Record<string, unknown> = {
|
|
454
496
|
source: "StudioWeb",
|
|
455
497
|
targetFramework: context.targetFramework,
|
|
456
498
|
jobType: "PublishStudioProject",
|
|
457
|
-
inputArguments: JSON.stringify(executorInfo),
|
|
458
499
|
};
|
|
459
500
|
|
|
501
|
+
// The serverless jobs endpoint caps inline inputArguments at
|
|
502
|
+
// MAX_INLINE_INPUT_ARGUMENTS_LENGTH characters. For larger payloads we
|
|
503
|
+
// upload the arguments as a file attachment and reference it via
|
|
504
|
+
// inputFile instead (the two are mutually exclusive on the server).
|
|
505
|
+
if (
|
|
506
|
+
inputArguments.length >
|
|
507
|
+
ProjectBundleExecutor.MAX_INLINE_INPUT_ARGUMENTS_LENGTH
|
|
508
|
+
) {
|
|
509
|
+
context.logger?.info(
|
|
510
|
+
translate.t(
|
|
511
|
+
"toolWorkflowCompilerBrowser.info.offloadingInputArguments",
|
|
512
|
+
{ length: inputArguments.length },
|
|
513
|
+
),
|
|
514
|
+
);
|
|
515
|
+
body.inputFile = await this.uploadInputArgumentsFileAsync(
|
|
516
|
+
inputArguments,
|
|
517
|
+
connection,
|
|
518
|
+
context.logger,
|
|
519
|
+
);
|
|
520
|
+
} else {
|
|
521
|
+
body.inputArguments = inputArguments;
|
|
522
|
+
}
|
|
523
|
+
|
|
460
524
|
const headers: Record<string, string> = {
|
|
461
525
|
"Content-Type": "application/json",
|
|
462
526
|
Authorization: `Bearer ${connection.accessToken}`,
|
|
@@ -484,6 +548,86 @@ export class ProjectBundleExecutor implements IProjectBundleExecutor {
|
|
|
484
548
|
}
|
|
485
549
|
}
|
|
486
550
|
|
|
551
|
+
/**
|
|
552
|
+
* Uploads the input arguments JSON as a file attachment and returns the
|
|
553
|
+
* attachment id, to be passed as `inputFile` on the serverless job request.
|
|
554
|
+
* Mirrors the two-step flow used by the Orchestrator UI: create the
|
|
555
|
+
* attachment (which returns a signed blob write URI) then PUT the contents
|
|
556
|
+
* to that URI using the storage-provided headers.
|
|
557
|
+
*/
|
|
558
|
+
private async uploadInputArgumentsFileAsync(
|
|
559
|
+
inputArguments: string,
|
|
560
|
+
connection: ConnectionInfo,
|
|
561
|
+
logger?: IToolLogger,
|
|
562
|
+
): Promise<string> {
|
|
563
|
+
const baseUrl = toRelativeUrl(connection.cloudUrl!);
|
|
564
|
+
const attachmentsUrl = `${baseUrl}/orchestrator_/odata/Attachments`;
|
|
565
|
+
|
|
566
|
+
const headers: Record<string, string> = {
|
|
567
|
+
"Content-Type": "application/json",
|
|
568
|
+
Authorization: `Bearer ${connection.accessToken}`,
|
|
569
|
+
"X-UIPATH-OrganizationUnitId": connection.folderId ?? "",
|
|
570
|
+
};
|
|
571
|
+
if (connection.tenantId) {
|
|
572
|
+
headers["x-uipath-tenantid"] = connection.tenantId;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
const createResponse = await fetch(attachmentsUrl, {
|
|
576
|
+
method: "POST",
|
|
577
|
+
headers,
|
|
578
|
+
body: JSON.stringify({ name: "input.json" }),
|
|
579
|
+
});
|
|
580
|
+
if (!createResponse.ok) {
|
|
581
|
+
const errorText = await createResponse.text();
|
|
582
|
+
throw new Error(
|
|
583
|
+
translate.t(
|
|
584
|
+
"toolWorkflowCompilerBrowser.errors.createAttachmentFailed",
|
|
585
|
+
{ status: createResponse.status, errorText },
|
|
586
|
+
),
|
|
587
|
+
);
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
const attachment = (await createResponse.json()) as AttachmentResponse;
|
|
591
|
+
const attachmentId = attachment.Id ?? attachment.id ?? "";
|
|
592
|
+
const writeUri =
|
|
593
|
+
attachment.BlobFileAccess?.Uri ?? attachment.blobFileAccess?.Uri;
|
|
594
|
+
if (!attachmentId || !writeUri) {
|
|
595
|
+
throw new Error(
|
|
596
|
+
translate.t(
|
|
597
|
+
"toolWorkflowCompilerBrowser.errors.attachmentResponseMalformed",
|
|
598
|
+
),
|
|
599
|
+
);
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
// PUT the raw bytes to the SAS blob URI. The Azure blob endpoint
|
|
603
|
+
// requires the BlockBlob type header; matches the proven contract in
|
|
604
|
+
// `@uipath/orchestrator-sdk`'s uploadJobAttachment.
|
|
605
|
+
const uploadResponse = await fetch(writeUri, {
|
|
606
|
+
method: "PUT",
|
|
607
|
+
headers: {
|
|
608
|
+
"Content-Type": "application/octet-stream",
|
|
609
|
+
"x-ms-blob-type": "BlockBlob",
|
|
610
|
+
},
|
|
611
|
+
body: inputArguments,
|
|
612
|
+
});
|
|
613
|
+
if (!uploadResponse.ok) {
|
|
614
|
+
throw new Error(
|
|
615
|
+
translate.t(
|
|
616
|
+
"toolWorkflowCompilerBrowser.errors.uploadInputArgumentsFailed",
|
|
617
|
+
{
|
|
618
|
+
status: uploadResponse.status,
|
|
619
|
+
statusText: uploadResponse.statusText,
|
|
620
|
+
},
|
|
621
|
+
),
|
|
622
|
+
);
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
logger?.info(
|
|
626
|
+
`[BundleExecutor] Uploaded input arguments as attachment ${attachmentId}`,
|
|
627
|
+
);
|
|
628
|
+
return attachmentId;
|
|
629
|
+
}
|
|
630
|
+
|
|
487
631
|
private resolveAll(session: BundleSession, result: ToolResult): void {
|
|
488
632
|
for (const [, entry] of session.projects) {
|
|
489
633
|
entry.resolve(result);
|