@uipath/maestro-tool 1.202.2 → 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.
Files changed (193) hide show
  1. package/README.md +8 -0
  2. package/dist/THIRD-PARTY-NOTICES.md +83 -290
  3. package/dist/{authoring-818595dq.js → authoring-at68vr5g.js} +7 -5
  4. package/dist/{authoring-6r3wx3fa.js → authoring-sh284a0x.js} +3 -3
  5. package/dist/{authoring-61hqf5em.js → authoring-szfy0rh1.js} +5 -5
  6. package/dist/{binding-service-643e69bb.js → binding-service-8a05gy4k.js} +37 -29
  7. package/dist/{bpmn-action-type-validator-kx36sqhe.js → bpmn-action-type-validator-8kvyvvcf.js} +2 -2
  8. package/dist/bpmn-binding-resolver-5scq28mc.js +145 -0
  9. package/dist/{bpmn-branch-y1m9f10n.js → bpmn-branch-t12a7jvf.js} +50 -44
  10. package/dist/bpmn-format-service-ay6jd9he.js +69 -0
  11. package/dist/{bpmn-refresh-service-ew545y06.js → bpmn-refresh-service-ak1ctkwg.js} +4 -4
  12. package/dist/{bpmn-update-metadata-service-jhahhjab.js → bpmn-update-metadata-service-hqe4edze.js} +6 -5
  13. package/dist/{bpmn-validate-service-6z2dj8ac.js → bpmn-validate-service-48sfy3a2.js} +3 -3
  14. package/dist/{case-api-4mstfkzf.js → case-api-e3fmq685.js} +6 -6
  15. package/dist/case-bindings-service-nswc6v0v.js +240 -0
  16. package/dist/case-debug-studio-web-service-58gtqznh.js +135 -0
  17. package/dist/case-format-service-6s5e1ckk.js +84 -0
  18. package/dist/{case-pack-service-v7wtb0qt.js → case-pack-service-sg435he1.js} +62 -11
  19. package/dist/{case-validate-service-bnpaf0zt.js → case-validate-service-7s69shsa.js} +1424 -42
  20. package/dist/{connector-enrichment-service-scrqnke3.js → connector-enrichment-service-9rqr3esj.js} +27 -26
  21. package/dist/{connector-lookup-service-hnk08t3m.js → connector-lookup-service-pencasp9.js} +5 -5
  22. package/dist/{connector-service-581bhxaj.js → connector-service-k4cgcv2b.js} +224 -56
  23. package/dist/{connector-task-spec-y2tcthz5.js → connector-task-spec-13ex0x0m.js} +27 -26
  24. package/dist/{conversion-FQTRFHRX-03xh3xbp.js → conversion-FQTRFHRX-0y9br7gw.js} +6 -5
  25. package/dist/de-FGHEJRCI-gn4cf5gh.js +2697 -0
  26. package/dist/de-MUJPA4EB-dpg7t2rw.js +173 -0
  27. package/dist/{debug-conversation-trigger-nj04k7s2.js → debug-conversation-trigger-wgzjaasj.js} +17 -14
  28. package/dist/{debug-http-client-c4teyma3.js → debug-http-client-7dvbwp96.js} +2 -2
  29. package/dist/{debug-service-m5jdyz3q.js → debug-service-8cwxhgww.js} +3 -3
  30. package/dist/{edge-service-vv2yfsn4.js → edge-service-szpsaezp.js} +17 -14
  31. package/dist/{index-yqfqxh2r.js → embedded-file-reader-0sjt4nkj.js} +96 -16641
  32. package/dist/{en-TBNO2WUV-rfe87pgh.js → en-BWGKA5OE-1qkvb9rn.js} +2 -2
  33. package/dist/en-FBPVNKFN-dqt573xn.js +138 -0
  34. package/dist/en-TBNO2WUV-9nan43e5.js +1936 -0
  35. package/dist/{enrichment-service-a65qt7y1.js → enrichment-service-7n1tf75p.js} +4 -4
  36. package/dist/es-7SE7HX2X-8yh1aj2y.js +173 -0
  37. package/dist/es-KR3ZSNMP-0cszm2n3.js +2697 -0
  38. package/dist/es-MX-2MYFZU7X-3rek4r73.js +173 -0
  39. package/dist/es-MX-XXZJGC4R-b4fbwe9d.js +2697 -0
  40. package/dist/first-party-service-srxaftkn.js +27 -0
  41. package/dist/{flow-api-vqvvs0q2.js → flow-api-4vkpbmt3.js} +7 -7
  42. package/dist/{flow-debug-service-vd7bdyhg.js → flow-debug-service-9tad5ckh.js} +66 -41
  43. package/dist/{flow-eval-node-target-mve3v55h.js → flow-eval-node-target-g222rh2e.js} +22 -15
  44. package/dist/flow-eval-run-api-hashjgq1.js +13 -0
  45. package/dist/{flow-eval-run-service-rt9kg4wx.js → flow-eval-run-service-btghb02r.js} +109 -224
  46. package/dist/{flow-eval-service-ededh59n.js → flow-eval-service-ma5psrsd.js} +346 -302
  47. package/dist/{flow-init-service-4ve9tr0t.js → flow-init-service-662zhfd3.js} +22 -18
  48. package/dist/{flow-io-2dd3sx38.js → flow-io-3cqz0svg.js} +16 -13
  49. package/dist/{flow-migrate-service-nbe6et60.js → flow-migrate-service-ehx7nmsr.js} +18 -14
  50. package/dist/{flow-pack-service-b2n877d8.js → flow-pack-service-a3w3489r.js} +43 -35
  51. package/dist/flow-validate-service-02e21w4d.js +3555 -0
  52. package/dist/fr-MDFKNZ4C-h4a122k9.js +173 -0
  53. package/dist/fr-Y6NPVODW-q5ef3htr.js +2697 -0
  54. package/dist/{governance-fetcher-at165287.js → governance-fetcher-7vxmap1e.js} +5 -4
  55. package/dist/{headless-85f2cys0.js → headless-627q5my5.js} +42909 -1756
  56. package/dist/{hitl-service-xn1bt80z.js → hitl-service-fn94tk6z.js} +16 -13
  57. package/dist/{index-hfsfzg4k.js → index-3arytfxn.js} +6 -4
  58. package/dist/{index-d1yqqk6q.js → index-55cym5j7.js} +6 -4
  59. package/dist/{index-0j6xww0f.js → index-9f94yk28.js} +3 -3
  60. package/dist/{index-1kgxzh8x.js → index-fz4ttsde.js} +14 -2
  61. package/dist/index-gvwc29bb.js +16742 -0
  62. package/dist/{index-mkgrn150.js → index-j1azsfr5.js} +36 -33
  63. package/dist/index-kmp9fmhb.js +25 -0
  64. package/dist/{index-938ee96p.js → index-rtg24r4x.js} +1 -1
  65. package/dist/index-tzccx5ym.js +2961 -0
  66. package/dist/{index-acd6bpqc.js → index-ymsd3pyx.js} +12 -15
  67. package/dist/index.js +3 -3
  68. package/dist/{input-reader-1wda1a2v.js → input-reader-7pzkcw6t.js} +1 -1
  69. package/dist/{input-reader-svafwk7x.js → input-reader-j8rvde4z.js} +1 -1
  70. package/dist/ja-Q5PXKJ2V-tzf2rvz2.js +2697 -0
  71. package/dist/ja-UTQEAP34-8e0q6swp.js +173 -0
  72. package/dist/known-types-8dhhqk35.js +19 -0
  73. package/dist/ko-AXCHW2OK-askct7f6.js +173 -0
  74. package/dist/ko-AYBDSRZG-am0h0m2r.js +2697 -0
  75. package/dist/{maestro-automate-entry-gwntzkvj.js → maestro-automate-entry-jehpbg37.js} +2 -2
  76. package/dist/{maestro-debug-service-dvh7qbx8.js → maestro-debug-service-xhtszkrc.js} +10 -10
  77. package/dist/{maestro-pack-service-fam5zdm3.js → maestro-pack-service-fkkc5g3v.js} +12 -6
  78. package/dist/{node-ks3095fb.js → node-p4bde6qy.js} +2344 -376
  79. package/dist/node-service-frvz67y3.js +83 -0
  80. package/dist/{node-sync-service-zwvm30qg.js → node-sync-service-wa2t7c65.js} +14 -14
  81. package/dist/{packager-tool-me5q0naa.js → packager-tool-095jzn8v.js} +16 -6
  82. package/dist/{packager-tool-y5f2qhfe.js → packager-tool-19030vpg.js} +32 -2
  83. package/dist/{packager-tool-gtqkcj4x.js → packager-tool-2c1rbj85.js} +310 -13
  84. package/dist/packager-tool-2q1mffef.js +261 -0
  85. package/dist/{flow-validate-service-0hxf5080.js → packager-tool-2xrng5ff.js} +1956 -3065
  86. package/dist/{packager-tool-8dgxmjzx.js → packager-tool-30ky51ca.js} +6 -3
  87. package/dist/{packager-tool-d5mjdpbf.js → packager-tool-4r35ye9r.js} +5 -4
  88. package/dist/packager-tool-53w8skv5.js +262 -0
  89. package/dist/{packager-tool-db4jm1rz.js → packager-tool-56gcg9de.js} +1 -1
  90. package/dist/{packager-tool-29eg86w6.js → packager-tool-6rsegsby.js} +6 -7
  91. package/dist/packager-tool-7msx23gd.js +13 -0
  92. package/dist/packager-tool-7q6z6npd.js +1937 -0
  93. package/dist/packager-tool-8qp60s20.js +12 -0
  94. package/dist/{packager-tool-s1r7krkp.js → packager-tool-9pccpz3r.js} +1 -1
  95. package/dist/{packager-tool-m351tkkr.js → packager-tool-c95fhhys.js} +30 -8
  96. package/dist/{packager-tool-kg5sxneg.js → packager-tool-cmzzh4f8.js} +72 -73
  97. package/dist/{packager-tool-ffvmys2r.js → packager-tool-cr0z8cbj.js} +5 -5
  98. package/dist/{packager-tool-8fkt71n4.js → packager-tool-cs1ec1da.js} +4 -3
  99. package/dist/{packager-tool-xatnrtwp.js → packager-tool-d2813z49.js} +9 -9
  100. package/dist/packager-tool-d88rqwk8.js +135 -0
  101. package/dist/{packager-tool-pm3qh1hy.js → packager-tool-dh5nppv4.js} +1 -1
  102. package/dist/packager-tool-dqxz5v18.js +486 -0
  103. package/dist/{packager-tool-r87gxwqa.js → packager-tool-e87tzg4y.js} +2 -2
  104. package/dist/{packager-tool-w9fd7vzs.js → packager-tool-f33sg3vr.js} +9 -9
  105. package/dist/{packager-tool-cj2ka9jr.js → packager-tool-fer9mdsq.js} +2 -2
  106. package/dist/{packager-tool-70eh7rpg.js → packager-tool-fm67whdy.js} +23 -5
  107. package/dist/packager-tool-fq7wtkd3.js +21012 -0
  108. package/dist/packager-tool-fvm2dddf.js +6297 -0
  109. package/dist/packager-tool-gdtpsdn7.js +342 -0
  110. package/dist/{packager-tool-ejyeka5x.js → packager-tool-gpwec9sp.js} +2 -2
  111. package/dist/{packager-tool-pap09zfh.js → packager-tool-h8x54cvx.js} +1 -1
  112. package/dist/{packager-tool-9vh3df76.js → packager-tool-hdmhxdch.js} +7 -7
  113. package/dist/packager-tool-hnyecbk6.js +88 -0
  114. package/dist/{packager-tool-mtbak8t4.js → packager-tool-j00gcgbs.js} +2 -2
  115. package/dist/packager-tool-j78fwwhq.js +16 -0
  116. package/dist/packager-tool-jysvpt8p.js +11 -0
  117. package/dist/{packager-tool-jfv7t0c8.js → packager-tool-kb554twx.js} +94 -94
  118. package/dist/{packager-tool-k4x5yn3p.js → packager-tool-khm7zsm8.js} +4 -1
  119. package/dist/packager-tool-kj0qc4f4.js +269 -0
  120. package/dist/{packager-tool-12636p2y.js → packager-tool-mcjjj1hk.js} +4 -4
  121. package/dist/{packager-tool-bftjhmqz.js → packager-tool-mfrdmqmt.js} +124 -2
  122. package/dist/{packager-tool-qgh5yaeh.js → packager-tool-mj89jhvb.js} +1 -1
  123. package/dist/{packager-tool-ve35117x.js → packager-tool-mjz4hma1.js} +5791 -176
  124. package/dist/packager-tool-paq9c70w.js +1332 -0
  125. package/dist/{packager-tool-d8v984ah.js → packager-tool-q2gwvnf5.js} +15 -56
  126. package/dist/{packager-tool-nmznynbj.js → packager-tool-qff6ang6.js} +1 -1
  127. package/dist/{packager-tool-j79gbsee.js → packager-tool-rg5pkkf0.js} +6 -6
  128. package/dist/{packager-tool-7309ymg1.js → packager-tool-s1466723.js} +10 -13
  129. package/dist/{packager-tool-54b4v7wp.js → packager-tool-te6rrpsz.js} +205 -195
  130. package/dist/packager-tool-vcjq9xkc.js +1895 -0
  131. package/dist/{packager-tool-w20r6n9v.js → packager-tool-vck7ct1e.js} +2877 -2221
  132. package/dist/{packager-tool-e8td7b01.js → packager-tool-vdc8r21p.js} +10328 -16610
  133. package/dist/{packager-tool-nxw5yzs7.js → packager-tool-vqcnvaae.js} +1 -1
  134. package/dist/{packager-tool-7rz102fw.js → packager-tool-wd01egnx.js} +1 -1
  135. package/dist/{packager-tool-gxqd24n0.js → packager-tool-wger1vt9.js} +7 -7
  136. package/dist/{packager-tool-a6yfnjgx.js → packager-tool-wynrdnqj.js} +1 -1
  137. package/dist/packager-tool-x0eamrk4.js +104577 -0
  138. package/dist/packager-tool-x92czn5x.js +208 -0
  139. package/dist/{packager-tool-am67sn1c.js → packager-tool-xtkgeccn.js} +1 -1
  140. package/dist/packager-tool-y59jhapb.js +10369 -0
  141. package/dist/{packager-tool-317z6dc1.js → packager-tool-ydg78w9z.js} +23 -23
  142. package/dist/{packager-tool-rr8hveb9.js → packager-tool-ygrrb1zh.js} +1 -1
  143. package/dist/{packager-tool-f0kd5kq4.js → packager-tool-yrsrzz1a.js} +127 -12
  144. package/dist/{packager-tool-d9dpx9wn.js → packager-tool-z185rq2a.js} +1 -1
  145. package/dist/{packager-tool-79gws1zn.js → packager-tool-z6nkdv48.js} +270 -24
  146. package/dist/{packager-tool-802qm7jy.js → packager-tool-zzxt99e4.js} +3 -3
  147. package/dist/packager-tool.js +75 -218
  148. package/dist/{project-artifacts-9z7atbk7.js → project-artifacts-h5cydk2n.js} +1 -1
  149. package/dist/{project-validator-0rkrfmj0.js → project-validator-ek97s27p.js} +1 -1
  150. package/dist/pt-3DIO5QWG-59b3f4bc.js +173 -0
  151. package/dist/pt-BR-TKHNHMET-dn6zxk1d.js +2697 -0
  152. package/dist/pt-BR-Y6K6XHXK-mp3hwhw1.js +173 -0
  153. package/dist/pt-ROXU257Y-yd80gx6s.js +2697 -0
  154. package/dist/{resourcesSyncService-3pajvveg.js → resourcesSyncService-7s92g1hm.js} +28 -27
  155. package/dist/ro-AVAWPKOO-42m6am1w.js +2697 -0
  156. package/dist/ro-BWR3ONRR-vzx3hy8a.js +173 -0
  157. package/dist/ru-GSCT4ARZ-jrxwev63.js +10 -0
  158. package/dist/ru-WBLQ5B2U-s4em88p0.js +10 -0
  159. package/dist/sdd-lookup-7h7j2h6v.js +48 -0
  160. package/dist/{serialization-BXU6AKAN-dk0sqx89.js → serialization-BXU6AKAN-0ghhrsja.js} +6 -5
  161. package/dist/{shared-utils-twgpb9ax.js → shared-utils-6z7gnnc8.js} +1 -1
  162. package/dist/{strict-case-rules-zxnq80zm.js → strict-case-rules-byym8cvc.js} +141 -109
  163. package/dist/strict-sdd-audit-v156c9e3.js +2520 -0
  164. package/dist/tidy-service-zyy7wxc0.js +39 -0
  165. package/dist/{tool-pxfafj3m.js → tool-dejjyv8m.js} +213 -51
  166. package/dist/{tool-td30zmyt.js → tool-v0r5qzcc.js} +106 -146
  167. package/dist/tool.js +3 -3
  168. package/dist/tr-5IIHSFW5-hw4cewew.js +173 -0
  169. package/dist/tr-JMIP7ZSL-fb67ft9w.js +2696 -0
  170. package/dist/{trigger-enrichment-service-t3wcd12r.js → trigger-enrichment-service-ak1nrz5t.js} +30 -29
  171. package/dist/{variable-service-2q705dsx.js → variable-service-t9gsp8xs.js} +16 -13
  172. package/dist/{wait-for-flow-job-sx0ht8sb.js → wait-for-flow-job-1s8ka07s.js} +7 -7
  173. package/dist/{xml-949787yf.js → xml-3rzcgm9z.js} +1359 -659
  174. package/dist/zh-CN-IFFXSEJS-tke4mzty.js +2697 -0
  175. package/dist/zh-CN-R2KU4U5L-tc1hat59.js +173 -0
  176. package/dist/zh-TW-GNKMELBF-j674515r.js +173 -0
  177. package/dist/zh-TW-IYBNYAMG-wcan0qpb.js +2697 -0
  178. package/package.json +3 -2
  179. package/dist/bpmn-format-service-r67afbny.js +0 -477
  180. package/dist/case-debug-studio-web-service-kj1797m8.js +0 -336
  181. package/dist/known-types-eq32py2n.js +0 -20
  182. package/dist/node-service-teagjd9n.js +0 -75
  183. package/dist/packager-tool-15bstxb6.js +0 -4192
  184. package/dist/packager-tool-1zpm7wts.js +0 -7217
  185. package/dist/packager-tool-7tjxtpfp.js +0 -106
  186. package/dist/packager-tool-ckhyvcn5.js +0 -58
  187. package/dist/packager-tool-dz506qqq.js +0 -2120
  188. package/dist/packager-tool-hpc2j0zw.js +0 -27
  189. package/dist/packager-tool-jjpc0yka.js +0 -304
  190. package/dist/packager-tool-xtv236p7.js +0 -73
  191. package/dist/strict-sdd-audit-zc0n5vj6.js +0 -1024
  192. package/dist/tidy-service-hc9gex0v.js +0 -36
  193. /package/dist/{localization-xecwjpe2.js → localization-y790z9vm.js} +0 -0
@@ -16,7 +16,7 @@ import {
16
16
  ZipService,
17
17
  toolsFactoryRepository,
18
18
  translate
19
- } from "./packager-tool-k4x5yn3p.js";
19
+ } from "./packager-tool-khm7zsm8.js";
20
20
  import"./packager-tool-nkrmjr3a.js";
21
21
  import"./packager-tool-1yh8g550.js";
22
22
 
@@ -90,18 +90,25 @@ var de_default = {
90
90
  info: {
91
91
  alreadyProvided: "Governance policy file already provided, skipping download.",
92
92
  saved: "Governance policy saved to {path}",
93
- downloading: "Downloading governance policy from {url}",
94
- noPolicyFound: "No governance policy found for this configuration.",
95
- responseNotJson: "Policy response is not JSON, treating as no policy.",
93
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
94
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
95
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
96
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
97
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
96
98
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
97
99
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
98
100
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
99
101
  },
100
102
  errors: {
101
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
102
- failedToGetPolicy: "Failed to download governance policy: {content}",
103
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
104
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
103
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
104
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
105
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
106
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
107
+ failedToSave: "Failed to save governance policy: {error}",
108
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
109
+ },
110
+ instructions: {
111
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
105
112
  }
106
113
  },
107
114
  signing: {
@@ -173,18 +180,25 @@ var en = {
173
180
  info: {
174
181
  alreadyProvided: "Governance policy file already provided, skipping download.",
175
182
  saved: "Governance policy saved to {path}",
176
- downloading: "Downloading governance policy from {url}",
177
- noPolicyFound: "No governance policy found for this configuration.",
178
- responseNotJson: "Policy response is not JSON, treating as no policy.",
183
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
184
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
185
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
186
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
187
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
179
188
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
180
189
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
181
190
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
182
191
  },
183
192
  errors: {
184
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
185
- failedToGetPolicy: "Failed to download governance policy: {content}",
186
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
187
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
193
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
194
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
195
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
196
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
197
+ failedToSave: "Failed to save governance policy: {error}",
198
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
199
+ },
200
+ instructions: {
201
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
188
202
  }
189
203
  },
190
204
  signing: {
@@ -256,18 +270,25 @@ var es_default = {
256
270
  info: {
257
271
  alreadyProvided: "Governance policy file already provided, skipping download.",
258
272
  saved: "Governance policy saved to {path}",
259
- downloading: "Downloading governance policy from {url}",
260
- noPolicyFound: "No governance policy found for this configuration.",
261
- responseNotJson: "Policy response is not JSON, treating as no policy.",
273
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
274
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
275
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
276
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
277
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
262
278
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
263
279
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
264
280
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
265
281
  },
266
282
  errors: {
267
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
268
- failedToGetPolicy: "Failed to download governance policy: {content}",
269
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
270
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
283
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
284
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
285
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
286
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
287
+ failedToSave: "Failed to save governance policy: {error}",
288
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
289
+ },
290
+ instructions: {
291
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
271
292
  }
272
293
  },
273
294
  signing: {
@@ -339,18 +360,25 @@ var es_MX_default = {
339
360
  info: {
340
361
  alreadyProvided: "Governance policy file already provided, skipping download.",
341
362
  saved: "Governance policy saved to {path}",
342
- downloading: "Downloading governance policy from {url}",
343
- noPolicyFound: "No governance policy found for this configuration.",
344
- responseNotJson: "Policy response is not JSON, treating as no policy.",
363
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
364
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
365
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
366
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
367
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
345
368
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
346
369
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
347
370
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
348
371
  },
349
372
  errors: {
350
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
351
- failedToGetPolicy: "Failed to download governance policy: {content}",
352
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
353
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
373
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
374
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
375
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
376
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
377
+ failedToSave: "Failed to save governance policy: {error}",
378
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
379
+ },
380
+ instructions: {
381
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
354
382
  }
355
383
  },
356
384
  signing: {
@@ -422,18 +450,25 @@ var fr_default = {
422
450
  info: {
423
451
  alreadyProvided: "Governance policy file already provided, skipping download.",
424
452
  saved: "Governance policy saved to {path}",
425
- downloading: "Downloading governance policy from {url}",
426
- noPolicyFound: "No governance policy found for this configuration.",
427
- responseNotJson: "Policy response is not JSON, treating as no policy.",
453
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
454
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
455
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
456
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
457
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
428
458
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
429
459
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
430
460
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
431
461
  },
432
462
  errors: {
433
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
434
- failedToGetPolicy: "Failed to download governance policy: {content}",
435
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
436
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
463
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
464
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
465
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
466
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
467
+ failedToSave: "Failed to save governance policy: {error}",
468
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
469
+ },
470
+ instructions: {
471
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
437
472
  }
438
473
  },
439
474
  signing: {
@@ -505,18 +540,25 @@ var ja_default = {
505
540
  info: {
506
541
  alreadyProvided: "Governance policy file already provided, skipping download.",
507
542
  saved: "Governance policy saved to {path}",
508
- downloading: "Downloading governance policy from {url}",
509
- noPolicyFound: "No governance policy found for this configuration.",
510
- responseNotJson: "Policy response is not JSON, treating as no policy.",
543
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
544
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
545
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
546
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
547
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
511
548
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
512
549
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
513
550
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
514
551
  },
515
552
  errors: {
516
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
517
- failedToGetPolicy: "Failed to download governance policy: {content}",
518
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
519
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
553
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
554
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
555
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
556
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
557
+ failedToSave: "Failed to save governance policy: {error}",
558
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
559
+ },
560
+ instructions: {
561
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
520
562
  }
521
563
  },
522
564
  signing: {
@@ -588,18 +630,25 @@ var ko_default = {
588
630
  info: {
589
631
  alreadyProvided: "Governance policy file already provided, skipping download.",
590
632
  saved: "Governance policy saved to {path}",
591
- downloading: "Downloading governance policy from {url}",
592
- noPolicyFound: "No governance policy found for this configuration.",
593
- responseNotJson: "Policy response is not JSON, treating as no policy.",
633
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
634
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
635
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
636
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
637
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
594
638
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
595
639
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
596
640
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
597
641
  },
598
642
  errors: {
599
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
600
- failedToGetPolicy: "Failed to download governance policy: {content}",
601
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
602
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
643
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
644
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
645
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
646
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
647
+ failedToSave: "Failed to save governance policy: {error}",
648
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
649
+ },
650
+ instructions: {
651
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
603
652
  }
604
653
  },
605
654
  signing: {
@@ -671,18 +720,25 @@ var pt_default = {
671
720
  info: {
672
721
  alreadyProvided: "Governance policy file already provided, skipping download.",
673
722
  saved: "Governance policy saved to {path}",
674
- downloading: "Downloading governance policy from {url}",
675
- noPolicyFound: "No governance policy found for this configuration.",
676
- responseNotJson: "Policy response is not JSON, treating as no policy.",
723
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
724
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
725
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
726
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
727
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
677
728
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
678
729
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
679
730
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
680
731
  },
681
732
  errors: {
682
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
683
- failedToGetPolicy: "Failed to download governance policy: {content}",
684
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
685
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
733
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
734
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
735
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
736
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
737
+ failedToSave: "Failed to save governance policy: {error}",
738
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
739
+ },
740
+ instructions: {
741
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
686
742
  }
687
743
  },
688
744
  signing: {
@@ -754,18 +810,25 @@ var pt_BR_default = {
754
810
  info: {
755
811
  alreadyProvided: "Governance policy file already provided, skipping download.",
756
812
  saved: "Governance policy saved to {path}",
757
- downloading: "Downloading governance policy from {url}",
758
- noPolicyFound: "No governance policy found for this configuration.",
759
- responseNotJson: "Policy response is not JSON, treating as no policy.",
813
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
814
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
815
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
816
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
817
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
760
818
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
761
819
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
762
820
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
763
821
  },
764
822
  errors: {
765
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
766
- failedToGetPolicy: "Failed to download governance policy: {content}",
767
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
768
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
823
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
824
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
825
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
826
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
827
+ failedToSave: "Failed to save governance policy: {error}",
828
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
829
+ },
830
+ instructions: {
831
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
769
832
  }
770
833
  },
771
834
  signing: {
@@ -837,18 +900,25 @@ var ro_default = {
837
900
  info: {
838
901
  alreadyProvided: "Governance policy file already provided, skipping download.",
839
902
  saved: "Governance policy saved to {path}",
840
- downloading: "Downloading governance policy from {url}",
841
- noPolicyFound: "No governance policy found for this configuration.",
842
- responseNotJson: "Policy response is not JSON, treating as no policy.",
903
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
904
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
905
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
906
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
907
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
843
908
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
844
909
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
845
910
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
846
911
  },
847
912
  errors: {
848
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
849
- failedToGetPolicy: "Failed to download governance policy: {content}",
850
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
851
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
913
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
914
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
915
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
916
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
917
+ failedToSave: "Failed to save governance policy: {error}",
918
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
919
+ },
920
+ instructions: {
921
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
852
922
  }
853
923
  },
854
924
  signing: {
@@ -920,18 +990,25 @@ var ru_default = {
920
990
  info: {
921
991
  alreadyProvided: "Governance policy file already provided, skipping download.",
922
992
  saved: "Governance policy saved to {path}",
923
- downloading: "Downloading governance policy from {url}",
924
- noPolicyFound: "No governance policy found for this configuration.",
925
- responseNotJson: "Policy response is not JSON, treating as no policy.",
993
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
994
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
995
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
996
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
997
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
926
998
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
927
999
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
928
1000
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
929
1001
  },
930
1002
  errors: {
931
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
932
- failedToGetPolicy: "Failed to download governance policy: {content}",
933
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
934
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
1003
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
1004
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
1005
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
1006
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
1007
+ failedToSave: "Failed to save governance policy: {error}",
1008
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
1009
+ },
1010
+ instructions: {
1011
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
935
1012
  }
936
1013
  },
937
1014
  signing: {
@@ -1003,18 +1080,25 @@ var tr_default = {
1003
1080
  info: {
1004
1081
  alreadyProvided: "Governance policy file already provided, skipping download.",
1005
1082
  saved: "Governance policy saved to {path}",
1006
- downloading: "Downloading governance policy from {url}",
1007
- noPolicyFound: "No governance policy found for this configuration.",
1008
- responseNotJson: "Policy response is not JSON, treating as no policy.",
1083
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
1084
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
1085
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
1086
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
1087
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
1009
1088
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
1010
1089
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
1011
1090
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
1012
1091
  },
1013
1092
  errors: {
1014
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
1015
- failedToGetPolicy: "Failed to download governance policy: {content}",
1016
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
1017
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
1093
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
1094
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
1095
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
1096
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
1097
+ failedToSave: "Failed to save governance policy: {error}",
1098
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
1099
+ },
1100
+ instructions: {
1101
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
1018
1102
  }
1019
1103
  },
1020
1104
  signing: {
@@ -1086,18 +1170,25 @@ var zh_CN_default = {
1086
1170
  info: {
1087
1171
  alreadyProvided: "Governance policy file already provided, skipping download.",
1088
1172
  saved: "Governance policy saved to {path}",
1089
- downloading: "Downloading governance policy from {url}",
1090
- noPolicyFound: "No governance policy found for this configuration.",
1091
- responseNotJson: "Policy response is not JSON, treating as no policy.",
1173
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
1174
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
1175
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
1176
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
1177
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
1092
1178
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
1093
1179
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
1094
1180
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
1095
1181
  },
1096
1182
  errors: {
1097
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
1098
- failedToGetPolicy: "Failed to download governance policy: {content}",
1099
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
1100
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
1183
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
1184
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
1185
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
1186
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
1187
+ failedToSave: "Failed to save governance policy: {error}",
1188
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
1189
+ },
1190
+ instructions: {
1191
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
1101
1192
  }
1102
1193
  },
1103
1194
  signing: {
@@ -1169,18 +1260,25 @@ var zh_TW_default = {
1169
1260
  info: {
1170
1261
  alreadyProvided: "Governance policy file already provided, skipping download.",
1171
1262
  saved: "Governance policy saved to {path}",
1172
- downloading: "Downloading governance policy from {url}",
1173
- noPolicyFound: "No governance policy found for this configuration.",
1174
- responseNotJson: "Policy response is not JSON, treating as no policy.",
1263
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
1264
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
1265
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
1266
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
1267
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
1175
1268
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
1176
1269
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
1177
1270
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
1178
1271
  },
1179
1272
  errors: {
1180
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
1181
- failedToGetPolicy: "Failed to download governance policy: {content}",
1182
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
1183
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
1273
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
1274
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
1275
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
1276
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
1277
+ failedToSave: "Failed to save governance policy: {error}",
1278
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
1279
+ },
1280
+ instructions: {
1281
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
1184
1282
  }
1185
1283
  },
1186
1284
  signing: {
@@ -1252,18 +1350,25 @@ var zu_default = {
1252
1350
  info: {
1253
1351
  alreadyProvided: "Governance policy file already provided, skipping download.",
1254
1352
  saved: "Governance policy saved to {path}",
1255
- downloading: "Downloading governance policy from {url}",
1256
- noPolicyFound: "No governance policy found for this configuration.",
1257
- responseNotJson: "Policy response is not JSON, treating as no policy.",
1353
+ resolving: "Asking AutomationOps for the {product} policy, license type {licenseType}.",
1354
+ ungoverned: "AutomationOps publishes no policy for this tenant. Analyzing with the rules shipped with the WorkflowCompiler.",
1355
+ suppliedFileHonoured: "AutomationOps publishes no policy for this tenant, so the supplied governance file is used: {path}",
1356
+ suppliedFileUnchecked: "Using the supplied governance file, but the tenant's own policy could not be checked: {path}",
1357
+ noTenantToAsk: "No signed-in tenant to ask about governance. Using the supplied governance file: {path}",
1258
1358
  licenseStatus: "AcquireLicense returned {status}, using {fallback}.",
1259
1359
  licenseResponse: "AcquireLicense: isLicensed={isLicensed}, robotType={robotType}",
1260
1360
  licenseFailed: "AcquireLicense failed: {error}. Using {fallback}."
1261
1361
  },
1262
1362
  errors: {
1263
- connectionIncomplete: "Connection info incomplete, falling back to Default governance.",
1264
- failedToGetPolicy: "Failed to download governance policy: {content}",
1265
- failedToSave: "Failed to save governance policy: {error}. Falling back to Default governance.",
1266
- failedToDownload: "Failed to download governance policy: {error}. Falling back to Default governance."
1363
+ connectionIncomplete: "Connection info is incomplete, so the tenant could not be asked about governance.",
1364
+ unknownOutcome: "Could not tell whether this tenant is governed ({reason}): {detail} Asked {url}.",
1365
+ retryAfter: "The policy service asked for {seconds} seconds before another try.",
1366
+ tenantPolicyWins: "The AutomationOps policy published for {product} applies to this tenant, so the governance file at {path} cannot replace it.",
1367
+ failedToSave: "Failed to save governance policy: {error}",
1368
+ fallingBackToDefault: "{reason} Analyzing with the rules shipped with the WorkflowCompiler."
1369
+ },
1370
+ instructions: {
1371
+ tenantPolicyWins: "Drop --governance-file-path so the tenant's policy is used, or ask an administrator to change the policy published in AutomationOps."
1267
1372
  }
1268
1373
  },
1269
1374
  signing: {
@@ -9215,7 +9320,7 @@ var UUID_PATTERN = /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{1
9215
9320
  var EMAIL_PATTERN = /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g;
9216
9321
  var JWT_PATTERN = /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g;
9217
9322
  var LONG_TOKEN_PATTERN = /\b[A-Za-z0-9_-]{40,}\b/g;
9218
- var PADDED_BASE64_PATTERN = /[A-Za-z0-9+/]{16,}={1,2}(?![A-Za-z0-9+/=])/g;
9323
+ var PADDED_BASE64_PATTERN = /(?<![A-Za-z0-9+/])[A-Za-z0-9+/]{16,}={1,2}(?![A-Za-z0-9+/=])/g;
9219
9324
  var BASE64_WITH_PLUS_PATTERN = /[A-Za-z0-9+/]{40,}/g;
9220
9325
  var USER_HOME_PATTERN = /(?<![A-Za-z0-9._-])([/\\])(Users|home|Profiles)([/\\])([^/\\]+)/gi;
9221
9326
  var UNC_PATH_PATTERN = /(^|[\s"'<>|=,;([{])(\\\\[^\s"'<>|]+)/g;
@@ -9262,7 +9367,7 @@ var QUOTED_LITERAL_PATTERN = new RegExp([
9262
9367
  `(?<![A-Za-z0-9])"(?:[^\\
9263
9368
  ]|\\.){2,${QUOTED_LITERAL_MAX_SPAN}}?"(?![A-Za-z0-9])`
9264
9369
  ].join("|"), "g");
9265
- var JSON_BODY_PATTERN = /[{[][^{}[\]]*[:,][^{}[\]]*[\]}]/g;
9370
+ var JSON_BODY_PATTERN = /[{[][^{}[\]:,]*[:,][^{}[\]]*[\]}]/g;
9266
9371
  var COLLAPSED_BODY = "{…}";
9267
9372
  var COLLAPSED_BODY_MARKER = "\x01body\x01";
9268
9373
  var MAX_BODY_NESTING = 8;
@@ -9277,10 +9382,13 @@ function collapseJsonBodies(text) {
9277
9382
  }
9278
9383
  return out.split(COLLAPSED_BODY_MARKER).join(COLLAPSED_BODY);
9279
9384
  }
9280
- var TRAILING_PROSE_PUNCT = /[.,;:!?)\]}>'"]+$/;
9385
+ var TRAILING_PROSE_PUNCT = `.,;:!?)]}>'"`;
9281
9386
  function peelTrailingPunctuation(match) {
9282
- const trailing = match.match(TRAILING_PROSE_PUNCT)?.[0] ?? "";
9283
- return trailing ? [match.slice(0, -trailing.length), trailing] : [match, ""];
9387
+ let end = match.length;
9388
+ while (end > 0 && TRAILING_PROSE_PUNCT.includes(match[end - 1])) {
9389
+ end -= 1;
9390
+ }
9391
+ return [match.slice(0, end), match.slice(end)];
9284
9392
  }
9285
9393
  function redactUrl(raw) {
9286
9394
  try {
@@ -9488,6 +9596,12 @@ var TLS_ERROR_CODES = new Set([
9488
9596
  var TLS_INSTRUCTIONS = "The server's TLS certificate could not be verified. Most often a " + "corporate proxy/firewall re-signs HTTPS with a root CA that Node does " + "not trust — set NODE_EXTRA_CA_CERTS to that CA's PEM file (and HTTPS_PROXY " + "if you connect through a proxy). If the certificate is instead expired or " + "its hostname does not match, fix the endpoint URL or the system clock. " + "Then retry.";
9489
9597
  var NETWORK_INSTRUCTIONS = "Could not reach the UiPath service. Check your network connection and " + "VPN, confirm any HTTP_PROXY/HTTPS_PROXY/NO_PROXY settings are correct, " + "then retry.";
9490
9598
  var LOCAL_PERMISSION_ERROR_CODES = new Set(["EACCES", "EPERM", "EROFS"]);
9599
+ function carriedInstructions(error) {
9600
+ if (!error || typeof error !== "object")
9601
+ return;
9602
+ const e = error;
9603
+ return typeof e.instructions === "string" ? e.instructions : undefined;
9604
+ }
9491
9605
  function setExitCode(code) {
9492
9606
  process.exitCode = code;
9493
9607
  }
@@ -9969,7 +10083,8 @@ function readRegistryValue(keyPath, valueName) {
9969
10083
  }
9970
10084
  const [error, output] = catchError(() => execFileSync2("reg", ["query", keyPath, "/v", valueName], {
9971
10085
  encoding: "utf-8",
9972
- stdio: ["pipe", "pipe", "pipe"]
10086
+ stdio: ["pipe", "pipe", "pipe"],
10087
+ windowsHide: true
9973
10088
  }));
9974
10089
  if (error) {
9975
10090
  return "";
@@ -10646,28 +10761,32 @@ function isPlainRecord(value) {
10646
10761
  const prototype = Object.getPrototypeOf(value);
10647
10762
  return prototype === Object.prototype || prototype === null;
10648
10763
  }
10649
- function extractPagedRows(value) {
10764
+ function splitPagedEnvelope(value) {
10650
10765
  if (Array.isArray(value) || !isPlainRecord(value))
10651
10766
  return null;
10652
- const entries = Object.values(value);
10767
+ const entries = Object.entries(value);
10653
10768
  if (entries.length === 0)
10654
10769
  return null;
10655
- let rows = null;
10656
- let hasScalarSibling = false;
10657
- for (const entry of entries) {
10770
+ let found = null;
10771
+ const meta = Object.create(null);
10772
+ for (const [key, entry] of entries) {
10658
10773
  if (Array.isArray(entry)) {
10659
- if (rows !== null)
10774
+ if (found !== null)
10660
10775
  return null;
10661
- rows = entry;
10776
+ found = { key, rows: entry };
10662
10777
  } else if (entry !== null && typeof entry === "object") {
10663
10778
  return null;
10664
10779
  } else {
10665
- hasScalarSibling = true;
10780
+ meta[key] = entry;
10666
10781
  }
10667
10782
  }
10668
- if (rows === null || !hasScalarSibling)
10783
+ if (found === null || Object.keys(meta).length === 0)
10669
10784
  return null;
10670
- return rows;
10785
+ return { ...found, meta };
10786
+ }
10787
+ function extractPagedRows(value) {
10788
+ const paged = splitPagedEnvelope(value);
10789
+ return paged === null ? null : paged.rows;
10671
10790
  }
10672
10791
  function toLowerCamelCaseKey(key) {
10673
10792
  if (!key)
@@ -10771,6 +10890,9 @@ function printOutput(data, format = "json", logFn, asciiSafe = false, tableRowSt
10771
10890
  }
10772
10891
  break;
10773
10892
  }
10893
+ case "markdown":
10894
+ logFn(renderMarkdown(data));
10895
+ break;
10774
10896
  default: {
10775
10897
  const hasData = "Data" in data && data.Data != null;
10776
10898
  const pagedRows = hasData ? extractPagedRows(data.Data) : null;
@@ -10795,6 +10917,10 @@ function logOutput(data, format = "json", tableRowStyle) {
10795
10917
  printOutput(data, format, (msg) => sink.writeOut(`${msg}
10796
10918
  `), needsAsciiSafeJson(sink), styleFn);
10797
10919
  }
10920
+ var PLUMBING_KEYS = new Set(["code", "log"]);
10921
+ function isPlumbingKey(key) {
10922
+ return PLUMBING_KEYS.has(key.toLowerCase());
10923
+ }
10798
10924
  function cellToString(val) {
10799
10925
  return val != null && typeof val === "object" ? JSON.stringify(val) : String(val ?? "");
10800
10926
  }
@@ -10810,7 +10936,7 @@ function wrapText(text, width) {
10810
10936
  function printTable(data, logFn, externalLogValue, tableRowStyle) {
10811
10937
  if (data.length === 0)
10812
10938
  return;
10813
- const keys = Object.keys(data[0]).filter((key) => !["code", "log"].includes(key.toLowerCase()));
10939
+ const keys = Object.keys(data[0]).filter((key) => !isPlumbingKey(key));
10814
10940
  const maxWidths = keys.map((key) => Math.max(key.length, ...data.map((item) => cellToString(item[key]).length)));
10815
10941
  const header = keys.map((key, i) => key.padEnd(maxWidths[i])).join(" | ");
10816
10942
  logFn(header);
@@ -10832,7 +10958,7 @@ function isNonEmptyPlainObject(value) {
10832
10958
  }
10833
10959
  var NESTED_INDENT = " ";
10834
10960
  function printVerticalTable(data, logFn = console.log, externalLogValue) {
10835
- const keys = Object.keys(data).filter((key) => !["code", "log"].includes(key.toLowerCase()));
10961
+ const keys = Object.keys(data).filter((key) => !isPlumbingKey(key));
10836
10962
  if (keys.length === 0)
10837
10963
  return;
10838
10964
  const isBlockValue = (value) => isPlainObjectArray(value) || isNonEmptyPlainObject(value);
@@ -10863,7 +10989,7 @@ function printVerticalTable(data, logFn = console.log, externalLogValue) {
10863
10989
  function printResizableTable(data, logFn = console.log, externalLogValue, availableWidth, tableRowStyle) {
10864
10990
  if (data.length === 0)
10865
10991
  return;
10866
- const keys = Object.keys(data[0]).filter((key) => !["code", "log"].includes(key.toLowerCase()));
10992
+ const keys = Object.keys(data[0]).filter((key) => !isPlumbingKey(key));
10867
10993
  if (keys.length === 0)
10868
10994
  return;
10869
10995
  if (!process.stdout.isTTY) {
@@ -10937,6 +11063,220 @@ function printResizableTable(data, logFn = console.log, externalLogValue, availa
10937
11063
  logFn(`Log: ${externalLogValue}`);
10938
11064
  }
10939
11065
  }
11066
+ var MARKDOWN_MAX_CELL = 200;
11067
+ var MARKDOWN_MAX_DEPTH = 3;
11068
+ function markdownHeading(depth) {
11069
+ return "#".repeat(Math.min(3 + depth, 6));
11070
+ }
11071
+ var BACKTICK_RUN = /`+/g;
11072
+ function fencedBlock(text) {
11073
+ const first = text.trimStart()[0];
11074
+ const language = first === "<" ? "xml" : first === "{" || first === "[" ? "json" : "";
11075
+ const longestRun = Math.max(0, ...Array.from(text.matchAll(BACKTICK_RUN), (match) => match[0].length));
11076
+ const fence = "`".repeat(Math.max(3, longestRun + 1));
11077
+ return `${fence}${language}
11078
+ ${text}
11079
+ ${fence}`;
11080
+ }
11081
+ function collapseNewlineRuns(text) {
11082
+ return text.split(/(\s+)/).map((part, index) => index % 2 === 1 && part.includes(`
11083
+ `) ? " " : part).join("");
11084
+ }
11085
+ function markdownCell(value) {
11086
+ const text = value instanceof Date ? value.toISOString() : cellToString(value);
11087
+ return collapseNewlineRuns(text).replace(/\|/g, "\\|");
11088
+ }
11089
+ function markdownLabel(key) {
11090
+ return collapseNewlineRuns(key).replace(/[\\`*|]/g, "\\$&");
11091
+ }
11092
+ function withoutPlumbing(record) {
11093
+ const kept = Object.create(null);
11094
+ for (const [key, value] of Object.entries(record)) {
11095
+ if (!isPlumbingKey(key))
11096
+ kept[key] = value;
11097
+ }
11098
+ return kept;
11099
+ }
11100
+ function rowsWithoutPlumbing(rows) {
11101
+ return rows.map((row) => isPlainRecord(row) ? withoutPlumbing(row) : row);
11102
+ }
11103
+ function markdownTable(rows) {
11104
+ const columns = [];
11105
+ const seen = new Set;
11106
+ for (const row of rows) {
11107
+ for (const key of Object.keys(row)) {
11108
+ if (!seen.has(key)) {
11109
+ seen.add(key);
11110
+ columns.push(key);
11111
+ }
11112
+ }
11113
+ }
11114
+ if (columns.length === 0)
11115
+ return null;
11116
+ const cells = rows.map((row) => columns.map((key) => markdownCell(row[key])));
11117
+ if (cells.some((row) => row.some((c) => c.length > MARKDOWN_MAX_CELL))) {
11118
+ return null;
11119
+ }
11120
+ return [
11121
+ `| ${columns.map(markdownLabel).join(" | ")} |`,
11122
+ `| ${columns.map(() => "---").join(" | ")} |`,
11123
+ ...cells.map((row) => `| ${row.join(" | ")} |`)
11124
+ ].join(`
11125
+ `);
11126
+ }
11127
+ function extractMessageSequence(rows) {
11128
+ const messages = [];
11129
+ for (const row of rows) {
11130
+ const message = extractSingleMessage(row);
11131
+ if (message === null)
11132
+ return null;
11133
+ messages.push(message);
11134
+ }
11135
+ return messages.join(`
11136
+
11137
+ `);
11138
+ }
11139
+ function markdownRows(rows, depth) {
11140
+ if (rows.length === 0)
11141
+ return "(none)";
11142
+ if (!isPlainObjectArray(rows)) {
11143
+ return rows.map((item) => `- ${markdownCell(item)}`).join(`
11144
+ `);
11145
+ }
11146
+ const prose = extractMessageSequence(rows);
11147
+ if (prose !== null)
11148
+ return prose;
11149
+ const table = markdownTable(rows);
11150
+ if (table !== null)
11151
+ return table;
11152
+ if (depth >= MARKDOWN_MAX_DEPTH) {
11153
+ return fencedBlock(JSON.stringify(rows, null, 2));
11154
+ }
11155
+ return rows.map((row, index) => [
11156
+ `${markdownHeading(depth)} ${index + 1}`,
11157
+ markdownObject(row, depth + 1)
11158
+ ].join(`
11159
+
11160
+ `)).join(`
11161
+
11162
+ `);
11163
+ }
11164
+ function markdownObject(obj, depth) {
11165
+ const scalars = [];
11166
+ const blocks = [];
11167
+ for (const [key, value] of Object.entries(obj)) {
11168
+ if (value === undefined)
11169
+ continue;
11170
+ const label = markdownLabel(key);
11171
+ if (Array.isArray(value)) {
11172
+ blocks.push(`${markdownHeading(depth)} ${label}
11173
+
11174
+ ${markdownRows(value, depth + 1)}`);
11175
+ } else if (isNonEmptyPlainObject(value)) {
11176
+ const nested = depth < MARKDOWN_MAX_DEPTH ? markdownObject(value, depth + 1) : fencedBlock(JSON.stringify(value, null, 2));
11177
+ if (nested !== "") {
11178
+ blocks.push(`${markdownHeading(depth)} ${label}
11179
+
11180
+ ${nested}`);
11181
+ }
11182
+ } else if (typeof value === "string" && value.includes(`
11183
+ `)) {
11184
+ blocks.push(`**${label}:**
11185
+
11186
+ ${fencedBlock(value)}`);
11187
+ } else {
11188
+ scalars.push(`**${label}:** ${markdownCell(value)}`);
11189
+ }
11190
+ }
11191
+ const sections = scalars.length > 0 ? [scalars.join(`
11192
+ `)] : [];
11193
+ sections.push(...blocks);
11194
+ return sections.join(`
11195
+
11196
+ `);
11197
+ }
11198
+ function extractSingleMessage(payload) {
11199
+ if (!isPlainRecord(payload))
11200
+ return null;
11201
+ const keys = Object.keys(payload);
11202
+ if (keys.length !== 1 || keys[0].toLowerCase() !== "message")
11203
+ return null;
11204
+ const value = payload[keys[0]];
11205
+ return typeof value === "string" ? value : null;
11206
+ }
11207
+ function markdownPayload(payload) {
11208
+ const message = extractSingleMessage(payload);
11209
+ if (message !== null)
11210
+ return message;
11211
+ if (Array.isArray(payload)) {
11212
+ return markdownRows(rowsWithoutPlumbing(payload), 0);
11213
+ }
11214
+ const visible = withoutPlumbing(payload);
11215
+ const paged = splitPagedEnvelope(visible);
11216
+ if (paged !== null) {
11217
+ const meta = markdownObject(paged.meta, 0);
11218
+ const rows = `${markdownHeading(0)} ${markdownLabel(paged.key)}
11219
+
11220
+ ${markdownRows(rowsWithoutPlumbing(paged.rows), 1)}`;
11221
+ return meta === "" ? rows : `${meta}
11222
+
11223
+ ${rows}`;
11224
+ }
11225
+ return markdownObject(visible, 0);
11226
+ }
11227
+ function isPaginationWorthShowing(value) {
11228
+ if (typeof value !== "object" || value === null)
11229
+ return false;
11230
+ const page = value;
11231
+ return page.HasMore === true || typeof page.Offset === "number" && page.Offset > 0;
11232
+ }
11233
+ function markdownEnvelopeNotes(data) {
11234
+ const envelope = data;
11235
+ const notes = [];
11236
+ const warning = envelope.Warning;
11237
+ if (typeof warning === "string" && warning !== "") {
11238
+ notes.push(`> **Warning:** ${warning}`);
11239
+ }
11240
+ const instructions = envelope.Instructions;
11241
+ if (typeof instructions === "string" && instructions !== "") {
11242
+ notes.push(`> ${instructions}`);
11243
+ }
11244
+ const pagination = envelope.Pagination;
11245
+ if (isPaginationWorthShowing(pagination)) {
11246
+ const body = markdownObject(pagination, 1);
11247
+ if (body !== "") {
11248
+ notes.push(`${markdownHeading(0)} Pagination
11249
+
11250
+ ${body}`);
11251
+ }
11252
+ }
11253
+ const log = envelope.Log;
11254
+ if (typeof log === "string" && log !== "") {
11255
+ notes.push(`**Log:** ${log}`);
11256
+ }
11257
+ return notes;
11258
+ }
11259
+ function renderMarkdown(data) {
11260
+ if (data.Result !== RESULTS.Success) {
11261
+ const failure = data;
11262
+ const sections = [`**Failed:** ${failure.Message}`];
11263
+ if (failure.Data != null) {
11264
+ sections.push(markdownPayload(failure.Data));
11265
+ }
11266
+ if (failure.Instructions) {
11267
+ sections.push(`> ${failure.Instructions}`);
11268
+ }
11269
+ return sections.filter((section) => section !== "").join(`
11270
+
11271
+ `);
11272
+ }
11273
+ if (!("Data" in data) || data.Data == null) {
11274
+ return markdownObject(withoutPlumbing(data), 0);
11275
+ }
11276
+ return [markdownPayload(data.Data), ...markdownEnvelopeNotes(data)].filter((section) => section !== "").join(`
11277
+
11278
+ `);
11279
+ }
10940
11280
  function toYaml(data) {
10941
11281
  const codec = getYamlCodec();
10942
11282
  if (!codec) {
@@ -12135,212 +12475,1907 @@ var TelemetryNames;
12135
12475
  TelemetryNames2["ProjectPackagerCleanup"] = "ProjectPackager.Cleanup";
12136
12476
  TelemetryNames2["ProjectPackagerProjectLoaded"] = "ProjectPackager.ProjectLoaded";
12137
12477
  })(TelemetryNames ||= {});
12138
- var LICENSE_TYPES = {
12139
- NoLicense: "NoLicense",
12140
- Development: "Development",
12141
- Attended: "Attended",
12142
- Unattended: "Unattended",
12143
- StudioX: "StudioX",
12144
- StudioPro: "StudioPro",
12145
- AutomationKit: "AutomationKit"
12146
- };
12147
- var DEFAULT_PROFILE_KEY = "StudioWeb";
12148
- var ACQUIRE_LICENSE_PATH = "/orchestrator_/api/StudioWeb/AcquireLicense";
12149
- var GOVERNANCE_SUBFOLDER = "governance";
12150
- var GOVERNANCE_FILE_NAME = "governance-policy.json";
12151
- var errorMessage = (error) => error instanceof Error ? error.message : String(error);
12152
- var t = (key, params) => translate.t(`solutionpackager.governance.${key}`, params);
12478
+ var BASE_PATH = "http://localhost".replace(/\/+$/, "");
12153
12479
 
12154
- class GovernancePolicyService {
12155
- fileSystem;
12156
- temporaryStorage;
12157
- fetchFn;
12158
- logger = new ToolLogger("GovernancePolicyService", "ResolvePolicy");
12159
- constructor(fileSystem, temporaryStorage, fetchFn = fetch.bind(globalThis)) {
12160
- this.fileSystem = fileSystem;
12161
- this.temporaryStorage = temporaryStorage;
12162
- this.fetchFn = fetchFn;
12480
+ class Configuration {
12481
+ configuration;
12482
+ constructor(configuration = {}) {
12483
+ this.configuration = configuration;
12163
12484
  }
12164
- async resolveGovernancePolicyAsync(validateOptions, connectionInfo, cancellationToken) {
12165
- if (validateOptions.governanceFileType !== "AutomationOps") {
12166
- return;
12485
+ set config(configuration) {
12486
+ this.configuration = configuration;
12487
+ }
12488
+ get basePath() {
12489
+ return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH;
12490
+ }
12491
+ get fetchApi() {
12492
+ return this.configuration.fetchApi;
12493
+ }
12494
+ get middleware() {
12495
+ return this.configuration.middleware || [];
12496
+ }
12497
+ get queryParamsStringify() {
12498
+ return this.configuration.queryParamsStringify || querystring;
12499
+ }
12500
+ get username() {
12501
+ return this.configuration.username;
12502
+ }
12503
+ get password() {
12504
+ return this.configuration.password;
12505
+ }
12506
+ get apiKey() {
12507
+ const apiKey = this.configuration.apiKey;
12508
+ if (apiKey) {
12509
+ return typeof apiKey === "function" ? apiKey : () => apiKey;
12167
12510
  }
12168
- if (validateOptions.governanceFilePath) {
12169
- this.logger.info(t("info.alreadyProvided"));
12170
- return;
12511
+ return;
12512
+ }
12513
+ get accessToken() {
12514
+ const accessToken = this.configuration.accessToken;
12515
+ if (accessToken) {
12516
+ return typeof accessToken === "function" ? accessToken : async () => accessToken;
12171
12517
  }
12172
- let cloudUrl = connectionInfo?.cloudUrl;
12173
- const organizationId = connectionInfo?.organizationId;
12174
- const tenantId = connectionInfo?.tenantId;
12175
- const accessToken = connectionInfo?.accessToken;
12176
- if (!cloudUrl || !organizationId || !tenantId || !accessToken) {
12177
- this.logger.warn(t("errors.connectionIncomplete"));
12178
- validateOptions.governanceFileType = "Default";
12179
- return;
12518
+ return;
12519
+ }
12520
+ get headers() {
12521
+ return this.configuration.headers;
12522
+ }
12523
+ get credentials() {
12524
+ return this.configuration.credentials;
12525
+ }
12526
+ }
12527
+ var DefaultConfig = new Configuration;
12528
+
12529
+ class BaseAPI {
12530
+ configuration;
12531
+ static jsonRegex = new RegExp("^(:?application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(:?;.*)?$", "i");
12532
+ middleware;
12533
+ constructor(configuration = DefaultConfig) {
12534
+ this.configuration = configuration;
12535
+ this.middleware = configuration.middleware;
12536
+ }
12537
+ withMiddleware(...middlewares) {
12538
+ const next = this.clone();
12539
+ next.middleware = next.middleware.concat(...middlewares);
12540
+ return next;
12541
+ }
12542
+ withPreMiddleware(...preMiddlewares) {
12543
+ const middlewares = preMiddlewares.map((pre) => ({ pre }));
12544
+ return this.withMiddleware(...middlewares);
12545
+ }
12546
+ withPostMiddleware(...postMiddlewares) {
12547
+ const middlewares = postMiddlewares.map((post) => ({ post }));
12548
+ return this.withMiddleware(...middlewares);
12549
+ }
12550
+ isJsonMime(mime) {
12551
+ if (!mime) {
12552
+ return false;
12180
12553
  }
12181
- const profileKey = validateOptions.profileKey ?? DEFAULT_PROFILE_KEY;
12182
- let cloudOrigin;
12183
- try {
12184
- cloudOrigin = new URL(cloudUrl).origin;
12185
- cloudUrl = cloudUrl.replace(/\/+$/, "");
12186
- } catch {
12187
- this.logger.warn(t("errors.connectionIncomplete"));
12188
- validateOptions.governanceFileType = "Default";
12189
- return;
12554
+ return BaseAPI.jsonRegex.test(mime);
12555
+ }
12556
+ async request(context, initOverrides) {
12557
+ const { url, init } = await this.createFetchParams(context, initOverrides);
12558
+ const response = await this.fetchApi(url, init);
12559
+ if (response && (response.status >= 200 && response.status < 300)) {
12560
+ return response;
12190
12561
  }
12191
- const licenseType = await this.resolveLicenseTypeAsync(profileKey, cloudUrl, accessToken, cancellationToken);
12192
- const policy = await this.downloadPolicyAsync(cloudOrigin, organizationId, tenantId, accessToken, licenseType, profileKey, cancellationToken);
12193
- if (!policy) {
12194
- validateOptions.governanceFileType = "Default";
12195
- return;
12562
+ throw new ResponseError(response, "Response returned an error code");
12563
+ }
12564
+ async createFetchParams(context, initOverrides) {
12565
+ let url = this.configuration.basePath + context.path;
12566
+ if (context.query !== undefined && Object.keys(context.query).length !== 0) {
12567
+ url += "?" + this.configuration.queryParamsStringify(context.query);
12196
12568
  }
12197
- try {
12198
- const dir = await this.temporaryStorage.getTempSubfolderPathAsync(GOVERNANCE_SUBFOLDER);
12199
- const filePath = Path.join(dir, GOVERNANCE_FILE_NAME);
12200
- await this.fileSystem.writeFile(filePath, policy);
12201
- this.logger.info(t("info.saved", { path: filePath }));
12202
- validateOptions.governanceFilePath = filePath;
12203
- } catch (error) {
12204
- this.logger.warn(t("errors.failedToSave", {
12205
- error: errorMessage(error)
12206
- }));
12207
- validateOptions.governanceFileType = "Default";
12569
+ const headers = Object.assign({}, this.configuration.headers, context.headers);
12570
+ Object.keys(headers).forEach((key) => headers[key] === undefined ? delete headers[key] : {});
12571
+ const initOverrideFn = typeof initOverrides === "function" ? initOverrides : async () => initOverrides;
12572
+ const initParams = {
12573
+ method: context.method,
12574
+ headers,
12575
+ body: context.body,
12576
+ credentials: this.configuration.credentials
12577
+ };
12578
+ const overriddenInit = {
12579
+ ...initParams,
12580
+ ...await initOverrideFn({
12581
+ init: initParams,
12582
+ context
12583
+ })
12584
+ };
12585
+ let body;
12586
+ if (isFormData(overriddenInit.body) || overriddenInit.body instanceof URLSearchParams || isBlob(overriddenInit.body)) {
12587
+ body = overriddenInit.body;
12588
+ } else if (this.isJsonMime(headers["Content-Type"])) {
12589
+ body = JSON.stringify(overriddenInit.body);
12590
+ } else {
12591
+ body = overriddenInit.body;
12208
12592
  }
12593
+ const init = {
12594
+ ...overriddenInit,
12595
+ body
12596
+ };
12597
+ return { url, init };
12209
12598
  }
12210
- async downloadPolicyAsync(cloudOrigin, organizationId, tenantId, accessToken, licenseType, profileKey, cancellationToken) {
12211
- const policyUrl = `${cloudOrigin}/${organizationId}/roboticsops_` + `/api/Policy/license/${licenseType}/product/${profileKey}/tenant/${tenantId}`;
12212
- this.logger.info(t("info.downloading", { url: policyUrl }));
12213
- try {
12214
- const response = await this.fetchFn(policyUrl, {
12215
- headers: {
12216
- Authorization: `Bearer ${accessToken}`,
12217
- AccountId: organizationId
12218
- },
12219
- signal: cancellationToken
12220
- });
12221
- if (response.status === 204 || response.status === 404) {
12222
- this.logger.info(t("info.noPolicyFound"));
12223
- return null;
12224
- }
12225
- if (!response.ok) {
12226
- const body = await response.text();
12227
- this.logger.warn(t("errors.failedToGetPolicy", { content: body }));
12228
- return null;
12599
+ fetchApi = async (url, init) => {
12600
+ let fetchParams = { url, init };
12601
+ for (const middleware of this.middleware) {
12602
+ if (middleware.pre) {
12603
+ fetchParams = await middleware.pre({
12604
+ fetch: this.fetchApi,
12605
+ ...fetchParams
12606
+ }) || fetchParams;
12229
12607
  }
12230
- const content = await response.text();
12231
- if (!content?.trimStart().startsWith("{")) {
12232
- this.logger.info(t("info.responseNotJson"));
12233
- return null;
12234
- }
12235
- return content;
12236
- } catch (error) {
12237
- this.logger.warn(t("errors.failedToDownload", {
12238
- error: errorMessage(error)
12239
- }));
12240
- return null;
12241
12608
  }
12242
- }
12243
- async resolveLicenseTypeAsync(profileKey, cloudUrl, accessToken, cancellationToken) {
12244
- const isStudioWeb = profileKey === DEFAULT_PROFILE_KEY;
12245
- const fallback = isStudioWeb ? LICENSE_TYPES.NoLicense : LICENSE_TYPES.Development;
12609
+ let response = undefined;
12246
12610
  try {
12247
- const response = await this.fetchFn(`${cloudUrl}${ACQUIRE_LICENSE_PATH}`, {
12248
- method: "POST",
12249
- headers: { Authorization: `Bearer ${accessToken}` },
12250
- signal: cancellationToken
12251
- });
12252
- if (!response.ok) {
12253
- this.logger.info(t("info.licenseStatus", {
12254
- status: response.status,
12255
- fallback
12256
- }));
12257
- return fallback;
12258
- }
12259
- const { isLicensed, robotType } = await response.json();
12260
- this.logger.info(t("info.licenseResponse", {
12261
- isLicensed: String(isLicensed),
12262
- robotType: String(robotType)
12263
- }));
12264
- if (!isLicensed || !robotType) {
12265
- return fallback;
12611
+ response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init);
12612
+ } catch (e) {
12613
+ for (const middleware of this.middleware) {
12614
+ if (middleware.onError) {
12615
+ response = await middleware.onError({
12616
+ fetch: this.fetchApi,
12617
+ url: fetchParams.url,
12618
+ init: fetchParams.init,
12619
+ error: e,
12620
+ response: response ? response.clone() : undefined
12621
+ }) || response;
12622
+ }
12623
+ }
12624
+ if (response === undefined) {
12625
+ if (e instanceof Error) {
12626
+ throw new FetchError(e, "The request failed and the interceptors did not return an alternative response");
12627
+ } else {
12628
+ throw e;
12629
+ }
12266
12630
  }
12267
- if (isStudioWeb) {
12268
- return robotType === LICENSE_TYPES.AutomationKit ? LICENSE_TYPES.AutomationKit : LICENSE_TYPES.NoLicense;
12631
+ }
12632
+ for (const middleware of this.middleware) {
12633
+ if (middleware.post) {
12634
+ response = await middleware.post({
12635
+ fetch: this.fetchApi,
12636
+ url: fetchParams.url,
12637
+ init: fetchParams.init,
12638
+ response: response.clone()
12639
+ }) || response;
12269
12640
  }
12270
- return robotType;
12271
- } catch (error) {
12272
- this.logger.info(t("info.licenseFailed", {
12273
- error: errorMessage(error),
12274
- fallback
12275
- }));
12276
- return fallback;
12277
12641
  }
12642
+ return response;
12643
+ };
12644
+ clone() {
12645
+ const constructor = this.constructor;
12646
+ const next = new constructor(this.configuration);
12647
+ next.middleware = this.middleware.slice();
12648
+ return next;
12278
12649
  }
12279
12650
  }
12280
- async function resolveProducedNupkgsAsync(fileSystem, packagePath) {
12281
- if (packagePath.toLowerCase().endsWith(".nupkg")) {
12282
- return [packagePath];
12283
- }
12284
- const stat2 = await fileSystem.stat(packagePath);
12285
- if (!stat2?.isDirectory()) {
12286
- return [];
12651
+ function isBlob(value) {
12652
+ return typeof Blob !== "undefined" && value instanceof Blob;
12653
+ }
12654
+ function isFormData(value) {
12655
+ return typeof FormData !== "undefined" && value instanceof FormData;
12656
+ }
12657
+
12658
+ class ResponseError extends Error {
12659
+ response;
12660
+ name = "ResponseError";
12661
+ constructor(response, msg) {
12662
+ super(msg);
12663
+ this.response = response;
12287
12664
  }
12288
- const candidateDirs = [packagePath, fileSystem.path.dirname(packagePath)];
12289
- for (const dir of candidateDirs) {
12290
- const entries = await fileSystem.readdir(dir);
12291
- const nupkgs = entries.filter((entry) => entry.toLowerCase().endsWith(".nupkg")).map((entry) => fileSystem.path.join(dir, entry));
12292
- if (nupkgs.length > 0) {
12293
- return nupkgs;
12294
- }
12665
+ }
12666
+
12667
+ class FetchError extends Error {
12668
+ cause;
12669
+ name = "FetchError";
12670
+ constructor(cause, msg) {
12671
+ super(msg);
12672
+ this.cause = cause;
12295
12673
  }
12296
- return [];
12297
12674
  }
12298
12675
 
12299
- class PackService {
12300
- disallowedCharsRegex = /[^\p{L}\p{N}_.-]/gu;
12301
- spacesDotRegex = /[\s.]+/g;
12302
- dotDashRegex = /\.{0,10}[-:]\.{0,10}/g;
12303
- MaxPackageIdLength = 100;
12304
- sanitizePackageId(packageId) {
12305
- packageId = packageId.trim();
12306
- packageId = packageId.replace(this.spacesDotRegex, ".");
12307
- packageId = packageId.replace(this.dotDashRegex, "-");
12308
- packageId = packageId.replace(this.disallowedCharsRegex, "_");
12309
- if (packageId.length > this.MaxPackageIdLength) {
12310
- throw new Error(`Package id ${packageId} exceeds the characters limit of ${this.MaxPackageIdLength}`);
12311
- }
12312
- return packageId;
12676
+ class RequiredError extends Error {
12677
+ field;
12678
+ name = "RequiredError";
12679
+ constructor(field, msg) {
12680
+ super(msg);
12681
+ this.field = field;
12313
12682
  }
12314
12683
  }
12315
- async function signNupkgsAsync(signService, nupkgPaths, signingInfo) {
12316
- if (!signingInfo?.certificatePath) {
12317
- return ToolResult.success();
12684
+ function querystring(params, prefix = "") {
12685
+ return Object.keys(params).map((key) => querystringSingleKey(key, params[key], prefix)).filter((part) => part.length > 0).join("&");
12686
+ }
12687
+ function querystringSingleKey(key, value, keyPrefix = "") {
12688
+ const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);
12689
+ if (value instanceof Array) {
12690
+ const multiValue = value.map((singleValue) => encodeURIComponent(String(singleValue))).join(`&${encodeURIComponent(fullKey)}=`);
12691
+ return `${encodeURIComponent(fullKey)}=${multiValue}`;
12318
12692
  }
12319
- if (!signService) {
12320
- return ToolResult.error(ToolErrorCodes.InternalError, "Package signing is required but signing service is not available. Package signing requires dotnet CLI to be installed in Node.js environment.");
12693
+ if (value instanceof Set) {
12694
+ const valueAsArray = Array.from(value);
12695
+ return querystringSingleKey(key, valueAsArray, keyPrefix);
12321
12696
  }
12322
- const certificatePath = signingInfo.certificatePath;
12323
- const toSign = [...new Set(nupkgPaths)];
12324
- if (toSign.length === 0) {
12325
- return ToolResult.success();
12697
+ if (value instanceof Date) {
12698
+ return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`;
12326
12699
  }
12327
- if (signService.signPackagesAsync) {
12328
- return signService.signPackagesAsync(toSign, certificatePath, signingInfo.certificatePassword, signingInfo.timestampServer);
12700
+ if (value instanceof Object) {
12701
+ return querystring(value, fullKey);
12329
12702
  }
12330
- for (const packagePath of toSign) {
12331
- const signResult = await signService.signPackageAsync(packagePath, certificatePath, signingInfo.certificatePassword, signingInfo.timestampServer);
12332
- if (!signResult.isSuccess) {
12333
- return signResult;
12703
+ return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;
12704
+ }
12705
+ function canConsumeForm(consumes) {
12706
+ for (const consume of consumes) {
12707
+ if (consume.contentType === "multipart/form-data") {
12708
+ return true;
12334
12709
  }
12335
12710
  }
12336
- return ToolResult.success();
12711
+ return false;
12337
12712
  }
12338
12713
 
12339
- class PackagerParametersValidator {
12340
- logger;
12341
- fileSystem;
12342
- constructor(logger2, fileSystem) {
12343
- this.logger = logger2;
12714
+ class JSONApiResponse {
12715
+ raw;
12716
+ transformer;
12717
+ constructor(raw, transformer = (jsonValue) => jsonValue) {
12718
+ this.raw = raw;
12719
+ this.transformer = transformer;
12720
+ }
12721
+ async value() {
12722
+ return this.transformer(await this.raw.json());
12723
+ }
12724
+ }
12725
+
12726
+ class VoidApiResponse {
12727
+ raw;
12728
+ constructor(raw) {
12729
+ this.raw = raw;
12730
+ }
12731
+ async value() {
12732
+ return;
12733
+ }
12734
+ }
12735
+
12736
+ class TextApiResponse {
12737
+ raw;
12738
+ constructor(raw) {
12739
+ this.raw = raw;
12740
+ }
12741
+ async value() {
12742
+ return await this.raw.text();
12743
+ }
12744
+ }
12745
+ function ProductDtoFromJSON(json2) {
12746
+ return ProductDtoFromJSONTyped(json2, false);
12747
+ }
12748
+ function ProductDtoFromJSONTyped(json2, ignoreDiscriminator) {
12749
+ if (json2 == null) {
12750
+ return json2;
12751
+ }
12752
+ return {
12753
+ name: json2["name"] == null ? undefined : json2["name"],
12754
+ label: json2["label"] == null ? undefined : json2["label"],
12755
+ isRestricted: json2["isRestricted"] == null ? undefined : json2["isRestricted"],
12756
+ isCloud: json2["isCloud"] == null ? undefined : json2["isCloud"],
12757
+ isRemote: json2["isRemote"] == null ? undefined : json2["isRemote"]
12758
+ };
12759
+ }
12760
+ function ProductDtoToJSON(json2) {
12761
+ return ProductDtoToJSONTyped(json2, false);
12762
+ }
12763
+ function ProductDtoToJSONTyped(value, ignoreDiscriminator = false) {
12764
+ if (value == null) {
12765
+ return value;
12766
+ }
12767
+ return {
12768
+ name: value["name"],
12769
+ label: value["label"],
12770
+ isRestricted: value["isRestricted"],
12771
+ isCloud: value["isCloud"],
12772
+ isRemote: value["isRemote"]
12773
+ };
12774
+ }
12775
+ function GlobalPolicyDtoFromJSON(json2) {
12776
+ return GlobalPolicyDtoFromJSONTyped(json2, false);
12777
+ }
12778
+ function GlobalPolicyDtoFromJSONTyped(json2, ignoreDiscriminator) {
12779
+ if (json2 == null) {
12780
+ return json2;
12781
+ }
12782
+ return {
12783
+ licenseType: json2["licenseType"] == null ? undefined : json2["licenseType"],
12784
+ identifier: json2["identifier"] == null ? undefined : json2["identifier"],
12785
+ policyNumber: json2["policyNumber"] == null ? undefined : json2["policyNumber"],
12786
+ product: json2["product"] == null ? undefined : ProductDtoFromJSON(json2["product"]),
12787
+ data: json2["data"] == null ? undefined : json2["data"]
12788
+ };
12789
+ }
12790
+ function GlobalPolicyDtoToJSON(json2) {
12791
+ return GlobalPolicyDtoToJSONTyped(json2, false);
12792
+ }
12793
+ function GlobalPolicyDtoToJSONTyped(value, ignoreDiscriminator = false) {
12794
+ if (value == null) {
12795
+ return value;
12796
+ }
12797
+ return {
12798
+ licenseType: value["licenseType"],
12799
+ identifier: value["identifier"],
12800
+ policyNumber: value["policyNumber"],
12801
+ product: ProductDtoToJSON(value["product"]),
12802
+ data: value["data"]
12803
+ };
12804
+ }
12805
+ function CreateGlobalPolicyWithFormDataRequestToJSON(json2) {
12806
+ return CreateGlobalPolicyWithFormDataRequestToJSONTyped(json2, false);
12807
+ }
12808
+ function CreateGlobalPolicyWithFormDataRequestToJSONTyped(value, ignoreDiscriminator = false) {
12809
+ if (value == null) {
12810
+ return value;
12811
+ }
12812
+ return {
12813
+ globalPolicy: GlobalPolicyDtoToJSON(value["globalPolicy"])
12814
+ };
12815
+ }
12816
+ function CreatePolicyRequestToJSON(json2) {
12817
+ return CreatePolicyRequestToJSONTyped(json2, false);
12818
+ }
12819
+ function CreatePolicyRequestToJSONTyped(value, ignoreDiscriminator = false) {
12820
+ if (value == null) {
12821
+ return value;
12822
+ }
12823
+ return {
12824
+ name: value["name"],
12825
+ description: value["description"],
12826
+ priority: value["priority"],
12827
+ availability: value["availability"],
12828
+ productName: value["productName"],
12829
+ data: value["data"]
12830
+ };
12831
+ }
12832
+ function FormDataDtoFromJSON(json2) {
12833
+ return FormDataDtoFromJSONTyped(json2, false);
12834
+ }
12835
+ function FormDataDtoFromJSONTyped(json2, ignoreDiscriminator) {
12836
+ if (json2 == null) {
12837
+ return json2;
12838
+ }
12839
+ return {
12840
+ policyIdentifier: json2["policyIdentifier"] == null ? undefined : json2["policyIdentifier"],
12841
+ data: json2["data"] == null ? undefined : json2["data"]
12842
+ };
12843
+ }
12844
+ function FormDataDtoToJSON(json2) {
12845
+ return FormDataDtoToJSONTyped(json2, false);
12846
+ }
12847
+ function FormDataDtoToJSONTyped(value, ignoreDiscriminator = false) {
12848
+ if (value == null) {
12849
+ return value;
12850
+ }
12851
+ return {
12852
+ policyIdentifier: value["policyIdentifier"],
12853
+ data: value["data"]
12854
+ };
12855
+ }
12856
+ function PolicyDtoFromJSON(json2) {
12857
+ return PolicyDtoFromJSONTyped(json2, false);
12858
+ }
12859
+ function PolicyDtoFromJSONTyped(json2, ignoreDiscriminator) {
12860
+ if (json2 == null) {
12861
+ return json2;
12862
+ }
12863
+ return {
12864
+ name: json2["name"] == null ? undefined : json2["name"],
12865
+ identifier: json2["identifier"] == null ? undefined : json2["identifier"],
12866
+ description: json2["description"] == null ? undefined : json2["description"],
12867
+ priority: json2["priority"] == null ? undefined : json2["priority"],
12868
+ availability: json2["availability"] == null ? undefined : json2["availability"],
12869
+ product: json2["product"] == null ? undefined : ProductDtoFromJSON(json2["product"]),
12870
+ data: json2["data"] == null ? undefined : FormDataDtoFromJSON(json2["data"])
12871
+ };
12872
+ }
12873
+ function PolicyDtoToJSON(json2) {
12874
+ return PolicyDtoToJSONTyped(json2, false);
12875
+ }
12876
+ function PolicyDtoToJSONTyped(value, ignoreDiscriminator = false) {
12877
+ if (value == null) {
12878
+ return value;
12879
+ }
12880
+ return {
12881
+ name: value["name"],
12882
+ identifier: value["identifier"],
12883
+ description: value["description"],
12884
+ priority: value["priority"],
12885
+ availability: value["availability"],
12886
+ product: ProductDtoToJSON(value["product"]),
12887
+ data: FormDataDtoToJSON(value["data"])
12888
+ };
12889
+ }
12890
+ function CreatePolicyWithFormDataRequestToJSON(json2) {
12891
+ return CreatePolicyWithFormDataRequestToJSONTyped(json2, false);
12892
+ }
12893
+ function CreatePolicyWithFormDataRequestToJSONTyped(value, ignoreDiscriminator = false) {
12894
+ if (value == null) {
12895
+ return value;
12896
+ }
12897
+ return {
12898
+ policy: PolicyDtoToJSON(value["policy"]),
12899
+ policyFormData: FormDataDtoToJSON(value["policyFormData"])
12900
+ };
12901
+ }
12902
+ function DeployedPolicyDtoToJSON(json2) {
12903
+ return DeployedPolicyDtoToJSONTyped(json2, false);
12904
+ }
12905
+ function DeployedPolicyDtoToJSONTyped(value, ignoreDiscriminator = false) {
12906
+ if (value == null) {
12907
+ return value;
12908
+ }
12909
+ return {
12910
+ licenseType: value["licenseType"],
12911
+ productName: value["productName"],
12912
+ tenantIdentifier: value["tenantIdentifier"],
12913
+ userIdentifier: value["userIdentifier"]
12914
+ };
12915
+ }
12916
+ function DeployedPolicyWithoutUserDtoToJSON(json2) {
12917
+ return DeployedPolicyWithoutUserDtoToJSONTyped(json2, false);
12918
+ }
12919
+ function DeployedPolicyWithoutUserDtoToJSONTyped(value, ignoreDiscriminator = false) {
12920
+ if (value == null) {
12921
+ return value;
12922
+ }
12923
+ return {
12924
+ licenseType: value["licenseType"],
12925
+ productName: value["productName"],
12926
+ tenantIdentifier: value["tenantIdentifier"]
12927
+ };
12928
+ }
12929
+ function DeploymentLevelFromJSON(json2) {
12930
+ return DeploymentLevelFromJSONTyped(json2, false);
12931
+ }
12932
+ function DeploymentLevelFromJSONTyped(json2, ignoreDiscriminator) {
12933
+ return json2;
12934
+ }
12935
+ function TenantPolicyDtoFromJSON(json2) {
12936
+ return TenantPolicyDtoFromJSONTyped(json2, false);
12937
+ }
12938
+ function TenantPolicyDtoFromJSONTyped(json2, ignoreDiscriminator) {
12939
+ if (json2 == null) {
12940
+ return json2;
12941
+ }
12942
+ return {
12943
+ tenantIdentifier: json2["tenantIdentifier"] == null ? undefined : json2["tenantIdentifier"],
12944
+ policyIdentifier: json2["policyIdentifier"] == null ? undefined : json2["policyIdentifier"],
12945
+ productIdentifier: json2["productIdentifier"] == null ? undefined : json2["productIdentifier"],
12946
+ licenseTypeIdentifier: json2["licenseTypeIdentifier"] == null ? undefined : json2["licenseTypeIdentifier"],
12947
+ tenantName: json2["tenantName"] == null ? undefined : json2["tenantName"]
12948
+ };
12949
+ }
12950
+ function GroupPolicyDtoFromJSON(json2) {
12951
+ return GroupPolicyDtoFromJSONTyped(json2, false);
12952
+ }
12953
+ function GroupPolicyDtoFromJSONTyped(json2, ignoreDiscriminator) {
12954
+ if (json2 == null) {
12955
+ return json2;
12956
+ }
12957
+ return {
12958
+ policyIdentifier: json2["policyIdentifier"] == null ? undefined : json2["policyIdentifier"],
12959
+ productIdentifier: json2["productIdentifier"] == null ? undefined : json2["productIdentifier"],
12960
+ groupId: json2["groupId"] == null ? undefined : json2["groupId"],
12961
+ groupName: json2["groupName"] == null ? undefined : json2["groupName"]
12962
+ };
12963
+ }
12964
+ function UserPolicyDtoFromJSON(json2) {
12965
+ return UserPolicyDtoFromJSONTyped(json2, false);
12966
+ }
12967
+ function UserPolicyDtoFromJSONTyped(json2, ignoreDiscriminator) {
12968
+ if (json2 == null) {
12969
+ return json2;
12970
+ }
12971
+ return {
12972
+ policyIdentifier: json2["policyIdentifier"] == null ? undefined : json2["policyIdentifier"],
12973
+ productIdentifier: json2["productIdentifier"] == null ? undefined : json2["productIdentifier"],
12974
+ userId: json2["userId"] == null ? undefined : json2["userId"],
12975
+ userName: json2["userName"] == null ? undefined : json2["userName"]
12976
+ };
12977
+ }
12978
+ function FederatedPolicyDtoFromJSON(json2) {
12979
+ return FederatedPolicyDtoFromJSONTyped(json2, false);
12980
+ }
12981
+ function FederatedPolicyDtoFromJSONTyped(json2, ignoreDiscriminator) {
12982
+ if (json2 == null) {
12983
+ return json2;
12984
+ }
12985
+ return {
12986
+ name: json2["name"] == null ? undefined : json2["name"],
12987
+ identifier: json2["identifier"] == null ? undefined : json2["identifier"],
12988
+ product: json2["product"] == null ? undefined : ProductDtoFromJSON(json2["product"]),
12989
+ description: json2["description"] == null ? undefined : json2["description"],
12990
+ priority: json2["priority"] == null ? undefined : json2["priority"],
12991
+ availability: json2["availability"] == null ? undefined : json2["availability"],
12992
+ tenantPolicies: json2["tenantPolicies"] == null ? undefined : json2["tenantPolicies"].map(TenantPolicyDtoFromJSON),
12993
+ userPolicies: json2["userPolicies"] == null ? undefined : json2["userPolicies"].map(UserPolicyDtoFromJSON),
12994
+ groupPolicies: json2["groupPolicies"] == null ? undefined : json2["groupPolicies"].map(GroupPolicyDtoFromJSON)
12995
+ };
12996
+ }
12997
+ function FederatedPolicyDtoPagedResultFromJSON(json2) {
12998
+ return FederatedPolicyDtoPagedResultFromJSONTyped(json2, false);
12999
+ }
13000
+ function FederatedPolicyDtoPagedResultFromJSONTyped(json2, ignoreDiscriminator) {
13001
+ if (json2 == null) {
13002
+ return json2;
13003
+ }
13004
+ return {
13005
+ totalCount: json2["totalCount"] == null ? undefined : json2["totalCount"],
13006
+ result: json2["result"] == null ? undefined : json2["result"].map(FederatedPolicyDtoFromJSON)
13007
+ };
13008
+ }
13009
+ function ImportPolicyRequestFromJSON(json2) {
13010
+ return ImportPolicyRequestFromJSONTyped(json2, false);
13011
+ }
13012
+ function ImportPolicyRequestFromJSONTyped(json2, ignoreDiscriminator) {
13013
+ if (json2 == null) {
13014
+ return json2;
13015
+ }
13016
+ return {
13017
+ productName: json2["product-name"] == null ? undefined : json2["product-name"],
13018
+ policyName: json2["policy-name"] == null ? undefined : json2["policy-name"],
13019
+ version: json2["version"] == null ? undefined : json2["version"],
13020
+ data: json2["data"] == null ? undefined : json2["data"]
13021
+ };
13022
+ }
13023
+ function PolicyDtoPagedResultFromJSON(json2) {
13024
+ return PolicyDtoPagedResultFromJSONTyped(json2, false);
13025
+ }
13026
+ function PolicyDtoPagedResultFromJSONTyped(json2, ignoreDiscriminator) {
13027
+ if (json2 == null) {
13028
+ return json2;
13029
+ }
13030
+ return {
13031
+ totalCount: json2["totalCount"] == null ? undefined : json2["totalCount"],
13032
+ result: json2["result"] == null ? undefined : json2["result"].map(PolicyDtoFromJSON)
13033
+ };
13034
+ }
13035
+ function PolicyExportResponseFromJSON(json2) {
13036
+ return PolicyExportResponseFromJSONTyped(json2, false);
13037
+ }
13038
+ function PolicyExportResponseFromJSONTyped(json2, ignoreDiscriminator) {
13039
+ if (json2 == null) {
13040
+ return json2;
13041
+ }
13042
+ return {
13043
+ identifier: json2["identifier"] == null ? undefined : json2["identifier"],
13044
+ name: json2["name"] == null ? undefined : json2["name"],
13045
+ availability: json2["availability"] == null ? undefined : json2["availability"],
13046
+ data: json2["data"] == null ? undefined : json2["data"],
13047
+ priority: json2["priority"] == null ? undefined : json2["priority"],
13048
+ deploymentLevel: json2["deploymentLevel"] == null ? undefined : DeploymentLevelFromJSON(json2["deploymentLevel"])
13049
+ };
13050
+ }
13051
+ function PolicyInfoDtoFromJSON(json2) {
13052
+ return PolicyInfoDtoFromJSONTyped(json2, false);
13053
+ }
13054
+ function PolicyInfoDtoFromJSONTyped(json2, ignoreDiscriminator) {
13055
+ if (json2 == null) {
13056
+ return json2;
13057
+ }
13058
+ return {
13059
+ name: json2["name"] == null ? undefined : json2["name"],
13060
+ identifier: json2["identifier"] == null ? undefined : json2["identifier"],
13061
+ product: json2["product"] == null ? undefined : json2["product"]
13062
+ };
13063
+ }
13064
+ function PolicyUsageDataFromJSON(json2) {
13065
+ return PolicyUsageDataFromJSONTyped(json2, false);
13066
+ }
13067
+ function PolicyUsageDataFromJSONTyped(json2, ignoreDiscriminator) {
13068
+ if (json2 == null) {
13069
+ return json2;
13070
+ }
13071
+ return {
13072
+ tenants: json2["tenants"] == null ? undefined : json2["tenants"],
13073
+ users: json2["users"] == null ? undefined : json2["users"],
13074
+ groups: json2["groups"] == null ? undefined : json2["groups"]
13075
+ };
13076
+ }
13077
+ function UpdatePolicyRequestToJSON(json2) {
13078
+ return UpdatePolicyRequestToJSONTyped(json2, false);
13079
+ }
13080
+ function UpdatePolicyRequestToJSONTyped(value, ignoreDiscriminator = false) {
13081
+ if (value == null) {
13082
+ return value;
13083
+ }
13084
+ return {
13085
+ name: value["name"],
13086
+ identifier: value["identifier"],
13087
+ description: value["description"],
13088
+ priority: value["priority"],
13089
+ availability: value["availability"],
13090
+ productName: value["productName"],
13091
+ data: value["data"]
13092
+ };
13093
+ }
13094
+
13095
+ class PolicyApi extends BaseAPI {
13096
+ async policyCreateDefaultPolicyForAllProductsRaw(initOverrides) {
13097
+ const queryParameters = {};
13098
+ const headerParameters = {};
13099
+ if (this.configuration && this.configuration.apiKey) {
13100
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13101
+ }
13102
+ let urlPath = `/api/Policy/default`;
13103
+ const response = await this.request({
13104
+ path: urlPath,
13105
+ method: "POST",
13106
+ headers: headerParameters,
13107
+ query: queryParameters
13108
+ }, initOverrides);
13109
+ return new JSONApiResponse(response, (jsonValue) => PolicyDtoFromJSON(jsonValue));
13110
+ }
13111
+ async policyCreateDefaultPolicyForAllProducts(initOverrides) {
13112
+ const response = await this.policyCreateDefaultPolicyForAllProductsRaw(initOverrides);
13113
+ return await response.value();
13114
+ }
13115
+ async policyCreateFormDataRaw(requestParameters, initOverrides) {
13116
+ if (requestParameters["policyIdentifier"] == null) {
13117
+ throw new RequiredError("policyIdentifier", 'Required parameter "policyIdentifier" was null or undefined when calling policyCreateFormData().');
13118
+ }
13119
+ const queryParameters = {};
13120
+ const headerParameters = {};
13121
+ headerParameters["Content-Type"] = "application/json";
13122
+ if (this.configuration && this.configuration.apiKey) {
13123
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13124
+ }
13125
+ let urlPath = `/api/Policy/form-data/{policyIdentifier}`;
13126
+ urlPath = urlPath.replace(`{${"policyIdentifier"}}`, encodeURIComponent(String(requestParameters["policyIdentifier"])));
13127
+ const response = await this.request({
13128
+ path: urlPath,
13129
+ method: "PUT",
13130
+ headers: headerParameters,
13131
+ query: queryParameters,
13132
+ body: requestParameters["body"]
13133
+ }, initOverrides);
13134
+ if (this.isJsonMime(response.headers.get("content-type"))) {
13135
+ return new JSONApiResponse(response);
13136
+ } else {
13137
+ return new TextApiResponse(response);
13138
+ }
13139
+ }
13140
+ async policyCreateFormData(requestParameters, initOverrides) {
13141
+ const response = await this.policyCreateFormDataRaw(requestParameters, initOverrides);
13142
+ return await response.value();
13143
+ }
13144
+ async policyCreateGlobalPolicyRaw(requestParameters, initOverrides) {
13145
+ const queryParameters = {};
13146
+ const headerParameters = {};
13147
+ headerParameters["Content-Type"] = "application/json";
13148
+ if (this.configuration && this.configuration.apiKey) {
13149
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13150
+ }
13151
+ let urlPath = `/api/Policy/global`;
13152
+ const response = await this.request({
13153
+ path: urlPath,
13154
+ method: "POST",
13155
+ headers: headerParameters,
13156
+ query: queryParameters,
13157
+ body: CreateGlobalPolicyWithFormDataRequestToJSON(requestParameters["createGlobalPolicyWithFormDataRequest"])
13158
+ }, initOverrides);
13159
+ return new JSONApiResponse(response, (jsonValue) => GlobalPolicyDtoFromJSON(jsonValue));
13160
+ }
13161
+ async policyCreateGlobalPolicy(requestParameters = {}, initOverrides) {
13162
+ const response = await this.policyCreateGlobalPolicyRaw(requestParameters, initOverrides);
13163
+ return await response.value();
13164
+ }
13165
+ async policyCreatePolicyRaw(requestParameters, initOverrides) {
13166
+ const queryParameters = {};
13167
+ if (requestParameters["telemetryFlowId"] != null) {
13168
+ queryParameters["telemetryFlowId"] = requestParameters["telemetryFlowId"];
13169
+ }
13170
+ const headerParameters = {};
13171
+ headerParameters["Content-Type"] = "application/json";
13172
+ if (this.configuration && this.configuration.apiKey) {
13173
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13174
+ }
13175
+ let urlPath = `/api/Policy`;
13176
+ const response = await this.request({
13177
+ path: urlPath,
13178
+ method: "POST",
13179
+ headers: headerParameters,
13180
+ query: queryParameters,
13181
+ body: CreatePolicyWithFormDataRequestToJSON(requestParameters["createPolicyWithFormDataRequest"])
13182
+ }, initOverrides);
13183
+ return new JSONApiResponse(response, (jsonValue) => PolicyDtoFromJSON(jsonValue));
13184
+ }
13185
+ async policyCreatePolicy(requestParameters = {}, initOverrides) {
13186
+ const response = await this.policyCreatePolicyRaw(requestParameters, initOverrides);
13187
+ return await response.value();
13188
+ }
13189
+ async policyCreatePolicyV2Raw(requestParameters, initOverrides) {
13190
+ const queryParameters = {};
13191
+ if (requestParameters["telemetryFlowId"] != null) {
13192
+ queryParameters["telemetryFlowId"] = requestParameters["telemetryFlowId"];
13193
+ }
13194
+ const headerParameters = {};
13195
+ headerParameters["Content-Type"] = "application/json";
13196
+ if (this.configuration && this.configuration.apiKey) {
13197
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13198
+ }
13199
+ let urlPath = `/api/Policy/v2/create`;
13200
+ const response = await this.request({
13201
+ path: urlPath,
13202
+ method: "POST",
13203
+ headers: headerParameters,
13204
+ query: queryParameters,
13205
+ body: CreatePolicyRequestToJSON(requestParameters["createPolicyRequest"])
13206
+ }, initOverrides);
13207
+ return new JSONApiResponse(response, (jsonValue) => PolicyDtoFromJSON(jsonValue));
13208
+ }
13209
+ async policyCreatePolicyV2(requestParameters = {}, initOverrides) {
13210
+ const response = await this.policyCreatePolicyV2Raw(requestParameters, initOverrides);
13211
+ return await response.value();
13212
+ }
13213
+ async policyDeletePolicyRaw(requestParameters, initOverrides) {
13214
+ if (requestParameters["policyIdentifier"] == null) {
13215
+ throw new RequiredError("policyIdentifier", 'Required parameter "policyIdentifier" was null or undefined when calling policyDeletePolicy().');
13216
+ }
13217
+ const queryParameters = {};
13218
+ const headerParameters = {};
13219
+ if (this.configuration && this.configuration.apiKey) {
13220
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13221
+ }
13222
+ let urlPath = `/api/Policy/{policyIdentifier}`;
13223
+ urlPath = urlPath.replace(`{${"policyIdentifier"}}`, encodeURIComponent(String(requestParameters["policyIdentifier"])));
13224
+ const response = await this.request({
13225
+ path: urlPath,
13226
+ method: "DELETE",
13227
+ headers: headerParameters,
13228
+ query: queryParameters
13229
+ }, initOverrides);
13230
+ return new JSONApiResponse(response, (jsonValue) => PolicyDtoFromJSON(jsonValue));
13231
+ }
13232
+ async policyDeletePolicy(requestParameters, initOverrides) {
13233
+ const response = await this.policyDeletePolicyRaw(requestParameters, initOverrides);
13234
+ return await response.value();
13235
+ }
13236
+ async policyDeletePolicyByProductNameAndPolicyNameRaw(requestParameters, initOverrides) {
13237
+ if (requestParameters["productName"] == null) {
13238
+ throw new RequiredError("productName", 'Required parameter "productName" was null or undefined when calling policyDeletePolicyByProductNameAndPolicyName().');
13239
+ }
13240
+ if (requestParameters["policyName"] == null) {
13241
+ throw new RequiredError("policyName", 'Required parameter "policyName" was null or undefined when calling policyDeletePolicyByProductNameAndPolicyName().');
13242
+ }
13243
+ const queryParameters = {};
13244
+ const headerParameters = {};
13245
+ if (this.configuration && this.configuration.apiKey) {
13246
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13247
+ }
13248
+ let urlPath = `/api/Policy/product/{productName}/policy/{policyName}`;
13249
+ urlPath = urlPath.replace(`{${"productName"}}`, encodeURIComponent(String(requestParameters["productName"])));
13250
+ urlPath = urlPath.replace(`{${"policyName"}}`, encodeURIComponent(String(requestParameters["policyName"])));
13251
+ const response = await this.request({
13252
+ path: urlPath,
13253
+ method: "DELETE",
13254
+ headers: headerParameters,
13255
+ query: queryParameters
13256
+ }, initOverrides);
13257
+ return new JSONApiResponse(response, (jsonValue) => PolicyDtoFromJSON(jsonValue));
13258
+ }
13259
+ async policyDeletePolicyByProductNameAndPolicyName(requestParameters, initOverrides) {
13260
+ const response = await this.policyDeletePolicyByProductNameAndPolicyNameRaw(requestParameters, initOverrides);
13261
+ return await response.value();
13262
+ }
13263
+ async policyDownloadPolicyByIdentifierRaw(requestParameters, initOverrides) {
13264
+ if (requestParameters["policyIdentifier"] == null) {
13265
+ throw new RequiredError("policyIdentifier", 'Required parameter "policyIdentifier" was null or undefined when calling policyDownloadPolicyByIdentifier().');
13266
+ }
13267
+ const queryParameters = {};
13268
+ const headerParameters = {};
13269
+ if (this.configuration && this.configuration.apiKey) {
13270
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13271
+ }
13272
+ let urlPath = `/api/Policy/{policyIdentifier}/download`;
13273
+ urlPath = urlPath.replace(`{${"policyIdentifier"}}`, encodeURIComponent(String(requestParameters["policyIdentifier"])));
13274
+ const response = await this.request({
13275
+ path: urlPath,
13276
+ method: "GET",
13277
+ headers: headerParameters,
13278
+ query: queryParameters
13279
+ }, initOverrides);
13280
+ return new JSONApiResponse(response, (jsonValue) => PolicyUsageDataFromJSON(jsonValue));
13281
+ }
13282
+ async policyDownloadPolicyByIdentifier(requestParameters, initOverrides) {
13283
+ const response = await this.policyDownloadPolicyByIdentifierRaw(requestParameters, initOverrides);
13284
+ return await response.value();
13285
+ }
13286
+ async policyGetAllPoliciesRaw(initOverrides) {
13287
+ const queryParameters = {};
13288
+ const headerParameters = {};
13289
+ if (this.configuration && this.configuration.apiKey) {
13290
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13291
+ }
13292
+ let urlPath = `/api/Policy`;
13293
+ const response = await this.request({
13294
+ path: urlPath,
13295
+ method: "GET",
13296
+ headers: headerParameters,
13297
+ query: queryParameters
13298
+ }, initOverrides);
13299
+ return new JSONApiResponse(response, (jsonValue) => jsonValue.map(PolicyDtoFromJSON));
13300
+ }
13301
+ async policyGetAllPolicies(initOverrides) {
13302
+ const response = await this.policyGetAllPoliciesRaw(initOverrides);
13303
+ return await response.value();
13304
+ }
13305
+ async policyGetAllPoliciesByProductIdRaw(requestParameters, initOverrides) {
13306
+ if (requestParameters["productIdentifier"] == null) {
13307
+ throw new RequiredError("productIdentifier", 'Required parameter "productIdentifier" was null or undefined when calling policyGetAllPoliciesByProductId().');
13308
+ }
13309
+ const queryParameters = {};
13310
+ const headerParameters = {};
13311
+ if (this.configuration && this.configuration.apiKey) {
13312
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13313
+ }
13314
+ let urlPath = `/api/Policy/{productIdentifier}`;
13315
+ urlPath = urlPath.replace(`{${"productIdentifier"}}`, encodeURIComponent(String(requestParameters["productIdentifier"])));
13316
+ const response = await this.request({
13317
+ path: urlPath,
13318
+ method: "GET",
13319
+ headers: headerParameters,
13320
+ query: queryParameters
13321
+ }, initOverrides);
13322
+ return new JSONApiResponse(response, (jsonValue) => jsonValue.map(PolicyDtoFromJSON));
13323
+ }
13324
+ async policyGetAllPoliciesByProductId(requestParameters, initOverrides) {
13325
+ const response = await this.policyGetAllPoliciesByProductIdRaw(requestParameters, initOverrides);
13326
+ return await response.value();
13327
+ }
13328
+ async policyGetAllPoliciesByQueryOptionsRaw(requestParameters, initOverrides) {
13329
+ const queryParameters = {};
13330
+ if (requestParameters["productLabel"] != null) {
13331
+ queryParameters["productLabel"] = requestParameters["productLabel"];
13332
+ }
13333
+ if (requestParameters["productName"] != null) {
13334
+ queryParameters["productName"] = requestParameters["productName"];
13335
+ }
13336
+ if (requestParameters["productNames"] != null) {
13337
+ queryParameters["productNames"] = requestParameters["productNames"];
13338
+ }
13339
+ if (requestParameters["sortBy"] != null) {
13340
+ queryParameters["sortBy"] = requestParameters["sortBy"];
13341
+ }
13342
+ if (requestParameters["sortOrder"] != null) {
13343
+ queryParameters["sortOrder"] = requestParameters["sortOrder"];
13344
+ }
13345
+ if (requestParameters["pageIndex"] != null) {
13346
+ queryParameters["pageIndex"] = requestParameters["pageIndex"];
13347
+ }
13348
+ if (requestParameters["pageSize"] != null) {
13349
+ queryParameters["pageSize"] = requestParameters["pageSize"];
13350
+ }
13351
+ if (requestParameters["searchTerm"] != null) {
13352
+ queryParameters["searchTerm"] = requestParameters["searchTerm"];
13353
+ }
13354
+ const headerParameters = {};
13355
+ if (this.configuration && this.configuration.apiKey) {
13356
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13357
+ }
13358
+ let urlPath = `/api/Policy/paged`;
13359
+ const response = await this.request({
13360
+ path: urlPath,
13361
+ method: "GET",
13362
+ headers: headerParameters,
13363
+ query: queryParameters
13364
+ }, initOverrides);
13365
+ return new JSONApiResponse(response, (jsonValue) => PolicyDtoPagedResultFromJSON(jsonValue));
13366
+ }
13367
+ async policyGetAllPoliciesByQueryOptions(requestParameters = {}, initOverrides) {
13368
+ const response = await this.policyGetAllPoliciesByQueryOptionsRaw(requestParameters, initOverrides);
13369
+ return await response.value();
13370
+ }
13371
+ async policyGetAllRulesForProductRaw(requestParameters, initOverrides) {
13372
+ if (requestParameters["licenseType"] == null) {
13373
+ throw new RequiredError("licenseType", 'Required parameter "licenseType" was null or undefined when calling policyGetAllRulesForProduct().');
13374
+ }
13375
+ if (requestParameters["productName"] == null) {
13376
+ throw new RequiredError("productName", 'Required parameter "productName" was null or undefined when calling policyGetAllRulesForProduct().');
13377
+ }
13378
+ if (requestParameters["tenantIdentifier"] == null) {
13379
+ throw new RequiredError("tenantIdentifier", 'Required parameter "tenantIdentifier" was null or undefined when calling policyGetAllRulesForProduct().');
13380
+ }
13381
+ const queryParameters = {};
13382
+ const headerParameters = {};
13383
+ if (this.configuration && this.configuration.apiKey) {
13384
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13385
+ }
13386
+ let urlPath = `/api/Policy/all/license/{licenseType}/product/{productName}/tenant/{tenantIdentifier}`;
13387
+ urlPath = urlPath.replace(`{${"licenseType"}}`, encodeURIComponent(String(requestParameters["licenseType"])));
13388
+ urlPath = urlPath.replace(`{${"productName"}}`, encodeURIComponent(String(requestParameters["productName"])));
13389
+ urlPath = urlPath.replace(`{${"tenantIdentifier"}}`, encodeURIComponent(String(requestParameters["tenantIdentifier"])));
13390
+ const response = await this.request({
13391
+ path: urlPath,
13392
+ method: "GET",
13393
+ headers: headerParameters,
13394
+ query: queryParameters
13395
+ }, initOverrides);
13396
+ return new JSONApiResponse(response, (jsonValue) => jsonValue.map(PolicyExportResponseFromJSON));
13397
+ }
13398
+ async policyGetAllRulesForProduct(requestParameters, initOverrides) {
13399
+ const response = await this.policyGetAllRulesForProductRaw(requestParameters, initOverrides);
13400
+ return await response.value();
13401
+ }
13402
+ async policyGetDeployedPolicyRaw(requestParameters, initOverrides) {
13403
+ const queryParameters = {};
13404
+ const headerParameters = {};
13405
+ headerParameters["Content-Type"] = "application/json";
13406
+ if (requestParameters["xUiPathClientVersion"] != null) {
13407
+ headerParameters["x-UiPath-ClientVersion"] = String(requestParameters["xUiPathClientVersion"]);
13408
+ }
13409
+ if (this.configuration && this.configuration.apiKey) {
13410
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13411
+ }
13412
+ let urlPath = `/api/Policy/deployed-policy`;
13413
+ const response = await this.request({
13414
+ path: urlPath,
13415
+ method: "POST",
13416
+ headers: headerParameters,
13417
+ query: queryParameters,
13418
+ body: DeployedPolicyDtoToJSON(requestParameters["deployedPolicyDto"])
13419
+ }, initOverrides);
13420
+ return new VoidApiResponse(response);
13421
+ }
13422
+ async policyGetDeployedPolicy(requestParameters = {}, initOverrides) {
13423
+ await this.policyGetDeployedPolicyRaw(requestParameters, initOverrides);
13424
+ }
13425
+ async policyGetDeployedTenantPoliciesRaw(requestParameters, initOverrides) {
13426
+ const queryParameters = {};
13427
+ const headerParameters = {};
13428
+ headerParameters["Content-Type"] = "application/json";
13429
+ if (requestParameters["xUiPathClientVersion"] != null) {
13430
+ headerParameters["x-UiPath-ClientVersion"] = String(requestParameters["xUiPathClientVersion"]);
13431
+ }
13432
+ if (this.configuration && this.configuration.apiKey) {
13433
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13434
+ }
13435
+ let urlPath = `/api/Policy/deployed-policy/tenant`;
13436
+ const response = await this.request({
13437
+ path: urlPath,
13438
+ method: "POST",
13439
+ headers: headerParameters,
13440
+ query: queryParameters,
13441
+ body: DeployedPolicyWithoutUserDtoToJSON(requestParameters["deployedPolicyWithoutUserDto"])
13442
+ }, initOverrides);
13443
+ return new VoidApiResponse(response);
13444
+ }
13445
+ async policyGetDeployedTenantPolicies(requestParameters = {}, initOverrides) {
13446
+ await this.policyGetDeployedTenantPoliciesRaw(requestParameters, initOverrides);
13447
+ }
13448
+ async policyGetFederatedPoliciesByQueryOptionsRaw(requestParameters, initOverrides) {
13449
+ const queryParameters = {};
13450
+ if (requestParameters["productLabel"] != null) {
13451
+ queryParameters["productLabel"] = requestParameters["productLabel"];
13452
+ }
13453
+ if (requestParameters["productName"] != null) {
13454
+ queryParameters["productName"] = requestParameters["productName"];
13455
+ }
13456
+ if (requestParameters["productNames"] != null) {
13457
+ queryParameters["productNames"] = requestParameters["productNames"];
13458
+ }
13459
+ if (requestParameters["sortBy"] != null) {
13460
+ queryParameters["sortBy"] = requestParameters["sortBy"];
13461
+ }
13462
+ if (requestParameters["sortOrder"] != null) {
13463
+ queryParameters["sortOrder"] = requestParameters["sortOrder"];
13464
+ }
13465
+ if (requestParameters["pageIndex"] != null) {
13466
+ queryParameters["pageIndex"] = requestParameters["pageIndex"];
13467
+ }
13468
+ if (requestParameters["pageSize"] != null) {
13469
+ queryParameters["pageSize"] = requestParameters["pageSize"];
13470
+ }
13471
+ if (requestParameters["searchTerm"] != null) {
13472
+ queryParameters["searchTerm"] = requestParameters["searchTerm"];
13473
+ }
13474
+ const headerParameters = {};
13475
+ if (this.configuration && this.configuration.apiKey) {
13476
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13477
+ }
13478
+ let urlPath = `/api/Policy/federated/paged`;
13479
+ const response = await this.request({
13480
+ path: urlPath,
13481
+ method: "GET",
13482
+ headers: headerParameters,
13483
+ query: queryParameters
13484
+ }, initOverrides);
13485
+ return new JSONApiResponse(response, (jsonValue) => FederatedPolicyDtoPagedResultFromJSON(jsonValue));
13486
+ }
13487
+ async policyGetFederatedPoliciesByQueryOptions(requestParameters = {}, initOverrides) {
13488
+ const response = await this.policyGetFederatedPoliciesByQueryOptionsRaw(requestParameters, initOverrides);
13489
+ return await response.value();
13490
+ }
13491
+ async policyGetFormDataByPolicyIdRaw(requestParameters, initOverrides) {
13492
+ if (requestParameters["policyIdentifier"] == null) {
13493
+ throw new RequiredError("policyIdentifier", 'Required parameter "policyIdentifier" was null or undefined when calling policyGetFormDataByPolicyId().');
13494
+ }
13495
+ const queryParameters = {};
13496
+ const headerParameters = {};
13497
+ if (this.configuration && this.configuration.apiKey) {
13498
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13499
+ }
13500
+ let urlPath = `/api/Policy/form-data/{policyIdentifier}`;
13501
+ urlPath = urlPath.replace(`{${"policyIdentifier"}}`, encodeURIComponent(String(requestParameters["policyIdentifier"])));
13502
+ const response = await this.request({
13503
+ path: urlPath,
13504
+ method: "GET",
13505
+ headers: headerParameters,
13506
+ query: queryParameters
13507
+ }, initOverrides);
13508
+ if (this.isJsonMime(response.headers.get("content-type"))) {
13509
+ return new JSONApiResponse(response);
13510
+ } else {
13511
+ return new TextApiResponse(response);
13512
+ }
13513
+ }
13514
+ async policyGetFormDataByPolicyId(requestParameters, initOverrides) {
13515
+ const response = await this.policyGetFormDataByPolicyIdRaw(requestParameters, initOverrides);
13516
+ return await response.value();
13517
+ }
13518
+ async policyGetGlobalPolicyByLicenseTypeAndProductNameRaw(requestParameters, initOverrides) {
13519
+ if (requestParameters["licenseType"] == null) {
13520
+ throw new RequiredError("licenseType", 'Required parameter "licenseType" was null or undefined when calling policyGetGlobalPolicyByLicenseTypeAndProductName().');
13521
+ }
13522
+ if (requestParameters["productIdentifier"] == null) {
13523
+ throw new RequiredError("productIdentifier", 'Required parameter "productIdentifier" was null or undefined when calling policyGetGlobalPolicyByLicenseTypeAndProductName().');
13524
+ }
13525
+ const queryParameters = {};
13526
+ const headerParameters = {};
13527
+ if (this.configuration && this.configuration.apiKey) {
13528
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13529
+ }
13530
+ let urlPath = `/api/Policy/global/license/{licenseType}/product/{productIdentifier}`;
13531
+ urlPath = urlPath.replace(`{${"licenseType"}}`, encodeURIComponent(String(requestParameters["licenseType"])));
13532
+ urlPath = urlPath.replace(`{${"productIdentifier"}}`, encodeURIComponent(String(requestParameters["productIdentifier"])));
13533
+ const response = await this.request({
13534
+ path: urlPath,
13535
+ method: "GET",
13536
+ headers: headerParameters,
13537
+ query: queryParameters
13538
+ }, initOverrides);
13539
+ return new JSONApiResponse(response, (jsonValue) => GlobalPolicyDtoFromJSON(jsonValue));
13540
+ }
13541
+ async policyGetGlobalPolicyByLicenseTypeAndProductName(requestParameters, initOverrides) {
13542
+ const response = await this.policyGetGlobalPolicyByLicenseTypeAndProductNameRaw(requestParameters, initOverrides);
13543
+ return await response.value();
13544
+ }
13545
+ async policyGetGroupPoliciesForAllProductsRaw(requestParameters, initOverrides) {
13546
+ if (requestParameters["identifier"] == null) {
13547
+ throw new RequiredError("identifier", 'Required parameter "identifier" was null or undefined when calling policyGetGroupPoliciesForAllProducts().');
13548
+ }
13549
+ const queryParameters = {};
13550
+ const headerParameters = {};
13551
+ if (this.configuration && this.configuration.apiKey) {
13552
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13553
+ }
13554
+ let urlPath = `/api/Policy/group/{identifier}`;
13555
+ urlPath = urlPath.replace(`{${"identifier"}}`, encodeURIComponent(String(requestParameters["identifier"])));
13556
+ const response = await this.request({
13557
+ path: urlPath,
13558
+ method: "GET",
13559
+ headers: headerParameters,
13560
+ query: queryParameters
13561
+ }, initOverrides);
13562
+ return new JSONApiResponse(response, (jsonValue) => jsonValue.map(GroupPolicyDtoFromJSON));
13563
+ }
13564
+ async policyGetGroupPoliciesForAllProducts(requestParameters, initOverrides) {
13565
+ const response = await this.policyGetGroupPoliciesForAllProductsRaw(requestParameters, initOverrides);
13566
+ return await response.value();
13567
+ }
13568
+ async policyGetPoliciesByProductIdentifiersRaw(requestParameters, initOverrides) {
13569
+ const queryParameters = {};
13570
+ if (requestParameters["ids"] != null) {
13571
+ queryParameters["ids"] = requestParameters["ids"];
13572
+ }
13573
+ const headerParameters = {};
13574
+ if (this.configuration && this.configuration.apiKey) {
13575
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13576
+ }
13577
+ let urlPath = `/api/Policy/filter/products`;
13578
+ const response = await this.request({
13579
+ path: urlPath,
13580
+ method: "GET",
13581
+ headers: headerParameters,
13582
+ query: queryParameters
13583
+ }, initOverrides);
13584
+ return new JSONApiResponse(response, (jsonValue) => jsonValue.map(PolicyInfoDtoFromJSON));
13585
+ }
13586
+ async policyGetPoliciesByProductIdentifiers(requestParameters = {}, initOverrides) {
13587
+ const response = await this.policyGetPoliciesByProductIdentifiersRaw(requestParameters, initOverrides);
13588
+ return await response.value();
13589
+ }
13590
+ async policyGetPolicyByIdRaw(requestParameters, initOverrides) {
13591
+ if (requestParameters["policyIdentifier"] == null) {
13592
+ throw new RequiredError("policyIdentifier", 'Required parameter "policyIdentifier" was null or undefined when calling policyGetPolicyById().');
13593
+ }
13594
+ const queryParameters = {};
13595
+ const headerParameters = {};
13596
+ if (this.configuration && this.configuration.apiKey) {
13597
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13598
+ }
13599
+ let urlPath = `/api/Policy/id/{policyIdentifier}`;
13600
+ urlPath = urlPath.replace(`{${"policyIdentifier"}}`, encodeURIComponent(String(requestParameters["policyIdentifier"])));
13601
+ const response = await this.request({
13602
+ path: urlPath,
13603
+ method: "GET",
13604
+ headers: headerParameters,
13605
+ query: queryParameters
13606
+ }, initOverrides);
13607
+ return new JSONApiResponse(response, (jsonValue) => PolicyDtoFromJSON(jsonValue));
13608
+ }
13609
+ async policyGetPolicyById(requestParameters, initOverrides) {
13610
+ const response = await this.policyGetPolicyByIdRaw(requestParameters, initOverrides);
13611
+ return await response.value();
13612
+ }
13613
+ async policyGetPolicyByNameAndProductIdentifierRaw(requestParameters, initOverrides) {
13614
+ if (requestParameters["policyName"] == null) {
13615
+ throw new RequiredError("policyName", 'Required parameter "policyName" was null or undefined when calling policyGetPolicyByNameAndProductIdentifier().');
13616
+ }
13617
+ if (requestParameters["productIdentifier"] == null) {
13618
+ throw new RequiredError("productIdentifier", 'Required parameter "productIdentifier" was null or undefined when calling policyGetPolicyByNameAndProductIdentifier().');
13619
+ }
13620
+ const queryParameters = {};
13621
+ const headerParameters = {};
13622
+ if (this.configuration && this.configuration.apiKey) {
13623
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13624
+ }
13625
+ let urlPath = `/api/Policy/{policyName}/product/{productIdentifier}`;
13626
+ urlPath = urlPath.replace(`{${"policyName"}}`, encodeURIComponent(String(requestParameters["policyName"])));
13627
+ urlPath = urlPath.replace(`{${"productIdentifier"}}`, encodeURIComponent(String(requestParameters["productIdentifier"])));
13628
+ const response = await this.request({
13629
+ path: urlPath,
13630
+ method: "GET",
13631
+ headers: headerParameters,
13632
+ query: queryParameters
13633
+ }, initOverrides);
13634
+ return new JSONApiResponse(response, (jsonValue) => PolicyUsageDataFromJSON(jsonValue));
13635
+ }
13636
+ async policyGetPolicyByNameAndProductIdentifier(requestParameters, initOverrides) {
13637
+ const response = await this.policyGetPolicyByNameAndProductIdentifierRaw(requestParameters, initOverrides);
13638
+ return await response.value();
13639
+ }
13640
+ async policyGetPolicyDataByIdentifierRaw(requestParameters, initOverrides) {
13641
+ if (requestParameters["policyIdentifier"] == null) {
13642
+ throw new RequiredError("policyIdentifier", 'Required parameter "policyIdentifier" was null or undefined when calling policyGetPolicyDataByIdentifier().');
13643
+ }
13644
+ const queryParameters = {};
13645
+ const headerParameters = {};
13646
+ if (this.configuration && this.configuration.apiKey) {
13647
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13648
+ }
13649
+ let urlPath = `/api/Policy/data/{policyIdentifier}`;
13650
+ urlPath = urlPath.replace(`{${"policyIdentifier"}}`, encodeURIComponent(String(requestParameters["policyIdentifier"])));
13651
+ const response = await this.request({
13652
+ path: urlPath,
13653
+ method: "GET",
13654
+ headers: headerParameters,
13655
+ query: queryParameters
13656
+ }, initOverrides);
13657
+ return new JSONApiResponse(response, (jsonValue) => ImportPolicyRequestFromJSON(jsonValue));
13658
+ }
13659
+ async policyGetPolicyDataByIdentifier(requestParameters, initOverrides) {
13660
+ const response = await this.policyGetPolicyDataByIdentifierRaw(requestParameters, initOverrides);
13661
+ return await response.value();
13662
+ }
13663
+ async policyGetPolicyUsageDataRaw(requestParameters, initOverrides) {
13664
+ if (requestParameters["policyIdentifier"] == null) {
13665
+ throw new RequiredError("policyIdentifier", 'Required parameter "policyIdentifier" was null or undefined when calling policyGetPolicyUsageData().');
13666
+ }
13667
+ const queryParameters = {};
13668
+ const headerParameters = {};
13669
+ if (this.configuration && this.configuration.apiKey) {
13670
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13671
+ }
13672
+ let urlPath = `/api/Policy/usage/{policyIdentifier}`;
13673
+ urlPath = urlPath.replace(`{${"policyIdentifier"}}`, encodeURIComponent(String(requestParameters["policyIdentifier"])));
13674
+ const response = await this.request({
13675
+ path: urlPath,
13676
+ method: "GET",
13677
+ headers: headerParameters,
13678
+ query: queryParameters
13679
+ }, initOverrides);
13680
+ return new JSONApiResponse(response, (jsonValue) => PolicyUsageDataFromJSON(jsonValue));
13681
+ }
13682
+ async policyGetPolicyUsageData(requestParameters, initOverrides) {
13683
+ const response = await this.policyGetPolicyUsageDataRaw(requestParameters, initOverrides);
13684
+ return await response.value();
13685
+ }
13686
+ async policyGetRulesForProductRaw(requestParameters, initOverrides) {
13687
+ if (requestParameters["licenseType"] == null) {
13688
+ throw new RequiredError("licenseType", 'Required parameter "licenseType" was null or undefined when calling policyGetRulesForProduct().');
13689
+ }
13690
+ if (requestParameters["productName"] == null) {
13691
+ throw new RequiredError("productName", 'Required parameter "productName" was null or undefined when calling policyGetRulesForProduct().');
13692
+ }
13693
+ if (requestParameters["tenantIdentifier"] == null) {
13694
+ throw new RequiredError("tenantIdentifier", 'Required parameter "tenantIdentifier" was null or undefined when calling policyGetRulesForProduct().');
13695
+ }
13696
+ const queryParameters = {};
13697
+ const headerParameters = {};
13698
+ if (this.configuration && this.configuration.apiKey) {
13699
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13700
+ }
13701
+ let urlPath = `/api/Policy/license/{licenseType}/product/{productName}/tenant/{tenantIdentifier}`;
13702
+ urlPath = urlPath.replace(`{${"licenseType"}}`, encodeURIComponent(String(requestParameters["licenseType"])));
13703
+ urlPath = urlPath.replace(`{${"productName"}}`, encodeURIComponent(String(requestParameters["productName"])));
13704
+ urlPath = urlPath.replace(`{${"tenantIdentifier"}}`, encodeURIComponent(String(requestParameters["tenantIdentifier"])));
13705
+ const response = await this.request({
13706
+ path: urlPath,
13707
+ method: "GET",
13708
+ headers: headerParameters,
13709
+ query: queryParameters
13710
+ }, initOverrides);
13711
+ return new VoidApiResponse(response);
13712
+ }
13713
+ async policyGetRulesForProduct(requestParameters, initOverrides) {
13714
+ await this.policyGetRulesForProductRaw(requestParameters, initOverrides);
13715
+ }
13716
+ async policyGetUserInheritanceGroupPoliciesForAllProductsRaw(requestParameters, initOverrides) {
13717
+ if (requestParameters["identifier"] == null) {
13718
+ throw new RequiredError("identifier", 'Required parameter "identifier" was null or undefined when calling policyGetUserInheritanceGroupPoliciesForAllProducts().');
13719
+ }
13720
+ const queryParameters = {};
13721
+ const headerParameters = {};
13722
+ if (this.configuration && this.configuration.apiKey) {
13723
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13724
+ }
13725
+ let urlPath = `/api/Policy/user/group/{identifier}`;
13726
+ urlPath = urlPath.replace(`{${"identifier"}}`, encodeURIComponent(String(requestParameters["identifier"])));
13727
+ const response = await this.request({
13728
+ path: urlPath,
13729
+ method: "GET",
13730
+ headers: headerParameters,
13731
+ query: queryParameters
13732
+ }, initOverrides);
13733
+ return new VoidApiResponse(response);
13734
+ }
13735
+ async policyGetUserInheritanceGroupPoliciesForAllProducts(requestParameters, initOverrides) {
13736
+ await this.policyGetUserInheritanceGroupPoliciesForAllProductsRaw(requestParameters, initOverrides);
13737
+ }
13738
+ async policyGetUserPoliciesForAllProductsRaw(requestParameters, initOverrides) {
13739
+ if (requestParameters["identifier"] == null) {
13740
+ throw new RequiredError("identifier", 'Required parameter "identifier" was null or undefined when calling policyGetUserPoliciesForAllProducts().');
13741
+ }
13742
+ const queryParameters = {};
13743
+ const headerParameters = {};
13744
+ if (this.configuration && this.configuration.apiKey) {
13745
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13746
+ }
13747
+ let urlPath = `/api/Policy/user/{identifier}`;
13748
+ urlPath = urlPath.replace(`{${"identifier"}}`, encodeURIComponent(String(requestParameters["identifier"])));
13749
+ const response = await this.request({
13750
+ path: urlPath,
13751
+ method: "GET",
13752
+ headers: headerParameters,
13753
+ query: queryParameters
13754
+ }, initOverrides);
13755
+ return new VoidApiResponse(response);
13756
+ }
13757
+ async policyGetUserPoliciesForAllProducts(requestParameters, initOverrides) {
13758
+ await this.policyGetUserPoliciesForAllProductsRaw(requestParameters, initOverrides);
13759
+ }
13760
+ async policyGetUserPoliciesForAllProductsAndAllGroupsRaw(requestParameters, initOverrides) {
13761
+ if (requestParameters["identifier"] == null) {
13762
+ throw new RequiredError("identifier", 'Required parameter "identifier" was null or undefined when calling policyGetUserPoliciesForAllProductsAndAllGroups().');
13763
+ }
13764
+ const queryParameters = {};
13765
+ const headerParameters = {};
13766
+ if (this.configuration && this.configuration.apiKey) {
13767
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13768
+ }
13769
+ let urlPath = `/api/Policy/user/{identifier}/all`;
13770
+ urlPath = urlPath.replace(`{${"identifier"}}`, encodeURIComponent(String(requestParameters["identifier"])));
13771
+ const response = await this.request({
13772
+ path: urlPath,
13773
+ method: "GET",
13774
+ headers: headerParameters,
13775
+ query: queryParameters
13776
+ }, initOverrides);
13777
+ return new VoidApiResponse(response);
13778
+ }
13779
+ async policyGetUserPoliciesForAllProductsAndAllGroups(requestParameters, initOverrides) {
13780
+ await this.policyGetUserPoliciesForAllProductsAndAllGroupsRaw(requestParameters, initOverrides);
13781
+ }
13782
+ async policyUpdateGlobalPolicyRaw(requestParameters, initOverrides) {
13783
+ const queryParameters = {};
13784
+ const headerParameters = {};
13785
+ headerParameters["Content-Type"] = "application/json";
13786
+ if (this.configuration && this.configuration.apiKey) {
13787
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13788
+ }
13789
+ let urlPath = `/api/Policy/global`;
13790
+ const response = await this.request({
13791
+ path: urlPath,
13792
+ method: "PUT",
13793
+ headers: headerParameters,
13794
+ query: queryParameters,
13795
+ body: CreateGlobalPolicyWithFormDataRequestToJSON(requestParameters["createGlobalPolicyWithFormDataRequest"])
13796
+ }, initOverrides);
13797
+ return new JSONApiResponse(response, (jsonValue) => GlobalPolicyDtoFromJSON(jsonValue));
13798
+ }
13799
+ async policyUpdateGlobalPolicy(requestParameters = {}, initOverrides) {
13800
+ const response = await this.policyUpdateGlobalPolicyRaw(requestParameters, initOverrides);
13801
+ return await response.value();
13802
+ }
13803
+ async policyUpdatePolicyRaw(requestParameters, initOverrides) {
13804
+ const queryParameters = {};
13805
+ const headerParameters = {};
13806
+ headerParameters["Content-Type"] = "application/json";
13807
+ if (this.configuration && this.configuration.apiKey) {
13808
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13809
+ }
13810
+ let urlPath = `/api/Policy`;
13811
+ const response = await this.request({
13812
+ path: urlPath,
13813
+ method: "PUT",
13814
+ headers: headerParameters,
13815
+ query: queryParameters,
13816
+ body: CreatePolicyWithFormDataRequestToJSON(requestParameters["createPolicyWithFormDataRequest"])
13817
+ }, initOverrides);
13818
+ return new JSONApiResponse(response, (jsonValue) => PolicyDtoFromJSON(jsonValue));
13819
+ }
13820
+ async policyUpdatePolicy(requestParameters = {}, initOverrides) {
13821
+ const response = await this.policyUpdatePolicyRaw(requestParameters, initOverrides);
13822
+ return await response.value();
13823
+ }
13824
+ async policyUpdatePolicyV2Raw(requestParameters, initOverrides) {
13825
+ const queryParameters = {};
13826
+ const headerParameters = {};
13827
+ headerParameters["Content-Type"] = "application/json";
13828
+ if (this.configuration && this.configuration.apiKey) {
13829
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13830
+ }
13831
+ let urlPath = `/api/Policy/v2/update`;
13832
+ const response = await this.request({
13833
+ path: urlPath,
13834
+ method: "PUT",
13835
+ headers: headerParameters,
13836
+ query: queryParameters,
13837
+ body: UpdatePolicyRequestToJSON(requestParameters["updatePolicyRequest"])
13838
+ }, initOverrides);
13839
+ return new JSONApiResponse(response, (jsonValue) => PolicyDtoFromJSON(jsonValue));
13840
+ }
13841
+ async policyUpdatePolicyV2(requestParameters = {}, initOverrides) {
13842
+ const response = await this.policyUpdatePolicyV2Raw(requestParameters, initOverrides);
13843
+ return await response.value();
13844
+ }
13845
+ async policyUploadCheckPolicyRaw(requestParameters, initOverrides) {
13846
+ const queryParameters = {};
13847
+ const headerParameters = {};
13848
+ if (this.configuration && this.configuration.apiKey) {
13849
+ headerParameters["Authorization"] = await this.configuration.apiKey("Authorization");
13850
+ }
13851
+ const consumes = [
13852
+ { contentType: "multipart/form-data" }
13853
+ ];
13854
+ const canConsumeForm2 = canConsumeForm(consumes);
13855
+ let formParams;
13856
+ let useForm = false;
13857
+ useForm = canConsumeForm2;
13858
+ if (useForm) {
13859
+ formParams = new FormData;
13860
+ } else {
13861
+ formParams = new URLSearchParams;
13862
+ }
13863
+ if (requestParameters["file"] != null) {
13864
+ formParams.append("file", requestParameters["file"]);
13865
+ }
13866
+ let urlPath = `/api/Policy/upload/check`;
13867
+ const response = await this.request({
13868
+ path: urlPath,
13869
+ method: "POST",
13870
+ headers: headerParameters,
13871
+ query: queryParameters,
13872
+ body: formParams
13873
+ }, initOverrides);
13874
+ return new JSONApiResponse(response, (jsonValue) => PolicyDtoFromJSON(jsonValue));
13875
+ }
13876
+ async policyUploadCheckPolicy(requestParameters = {}, initOverrides) {
13877
+ const response = await this.policyUploadCheckPolicyRaw(requestParameters, initOverrides);
13878
+ return await response.value();
13879
+ }
13880
+ }
13881
+ var DEFAULT_TIMEOUT_MS = 1e4;
13882
+ var CLIENT_VERSION_HEADER = "ClientVersion";
13883
+ var JSON_MIME = /^application\/(json|[^;\s]+\+json)\s*(;.*)?$/i;
13884
+ async function resolvePolicyAsync(options) {
13885
+ const subject = options.subject;
13886
+ requireValue("subject", subject);
13887
+ requireText("subject.organizationId", subject.organizationId);
13888
+ requireText("subject.tenantId", subject.tenantId);
13889
+ requireText("subject.product", subject.product);
13890
+ requireText("subject.licenseType", subject.licenseType);
13891
+ requireText("baseUrl", options.baseUrl);
13892
+ requireText("clientVersion", options.clientVersion);
13893
+ const fetchApi = options.fetch ?? globalThis.fetch;
13894
+ if (typeof fetchApi !== "function") {
13895
+ throw new RequiredError("fetch", "No fetch implementation available. Pass options.fetch.");
13896
+ }
13897
+ const now = options.now ?? (() => new Date);
13898
+ const basePath = `${options.baseUrl.replace(/\/+$/, "")}/${encodeURIComponent(subject.organizationId)}/roboticsops_`;
13899
+ let requestUrl = basePath;
13900
+ const api = new PolicyApi(new Configuration({
13901
+ basePath,
13902
+ fetchApi,
13903
+ apiKey: async () => `Bearer ${await readToken(options.accessToken)}`,
13904
+ headers: {
13905
+ AccountId: subject.organizationId,
13906
+ [CLIENT_VERSION_HEADER]: options.clientVersion
13907
+ },
13908
+ middleware: [
13909
+ {
13910
+ pre: async (context) => {
13911
+ requestUrl = context.url;
13912
+ }
13913
+ }
13914
+ ]
13915
+ }));
13916
+ if (options.signal?.aborted) {
13917
+ return unknown(subject, buildAudit(requestUrl, now), "cancelled", "The request was cancelled before it was sent.");
13918
+ }
13919
+ const controller = new AbortController;
13920
+ let timedOut = false;
13921
+ const timer = setTimeout(() => {
13922
+ timedOut = true;
13923
+ controller.abort();
13924
+ }, options.timeoutMs ?? DEFAULT_TIMEOUT_MS);
13925
+ const relayAbort = () => controller.abort();
13926
+ options.signal?.addEventListener("abort", relayAbort, { once: true });
13927
+ let seenResponse;
13928
+ try {
13929
+ const response = await api.policyGetRulesForProductRaw({
13930
+ licenseType: subject.licenseType,
13931
+ productName: subject.product,
13932
+ tenantIdentifier: subject.tenantId
13933
+ }, { signal: controller.signal });
13934
+ seenResponse = response.raw;
13935
+ return await classifySuccess(response.raw, subject, requestUrl, now);
13936
+ } catch (error) {
13937
+ return classifyFailure(error, subject, requestUrl, now, timedOut, options.signal, seenResponse);
13938
+ } finally {
13939
+ clearTimeout(timer);
13940
+ options.signal?.removeEventListener("abort", relayAbort);
13941
+ }
13942
+ }
13943
+ async function classifySuccess(response, subject, url, now) {
13944
+ const audit = buildAudit(url, now, response);
13945
+ if (response.status === 204) {
13946
+ return { outcome: "ungoverned", subject, audit };
13947
+ }
13948
+ if (response.status !== 200) {
13949
+ return unknown(subject, audit, "serverError", `The policy service answered ${response.status}; only 200 carries a policy and only 204 means none is published.`);
13950
+ }
13951
+ const contentType = response.headers.get("content-type");
13952
+ if (!JSON_MIME.test(contentType ?? "")) {
13953
+ return unknown(subject, audit, "notJson", `Expected a JSON policy document, got content-type ${contentType ?? "(none)"}.`);
13954
+ }
13955
+ const body = await response.text();
13956
+ if (!isJsonObject(body)) {
13957
+ return unknown(subject, audit, "notJson", body.trim() === "" ? "The response body was empty." : "The response body is not a JSON object.");
13958
+ }
13959
+ return { outcome: "governed", subject, audit, document: body };
13960
+ }
13961
+ function classifyFailure(error, subject, url, now, timedOut, signal, seenResponse) {
13962
+ if (error instanceof ResponseError) {
13963
+ return unknown(subject, buildAudit(url, now, error.response), reasonForStatus(error.response.status), `The policy service answered ${error.response.status}.`);
13964
+ }
13965
+ const audit = buildAudit(url, now, seenResponse);
13966
+ if (timedOut) {
13967
+ return unknown(subject, audit, "timedOut", "The policy service did not answer within the timeout.");
13968
+ }
13969
+ if (signal?.aborted || isAbortError(error)) {
13970
+ return unknown(subject, audit, "cancelled", "The request was cancelled.");
13971
+ }
13972
+ return unknown(subject, audit, "transport", `The request to the policy service failed: ${describe(unwrap(error))}`);
13973
+ }
13974
+ function unwrap(error) {
13975
+ return error instanceof FetchError ? error.cause : error;
13976
+ }
13977
+ function reasonForStatus(status) {
13978
+ if (status === 401 || status === 403) {
13979
+ return "unauthorized";
13980
+ }
13981
+ if (status === 404) {
13982
+ return "notFound";
13983
+ }
13984
+ return "serverError";
13985
+ }
13986
+ function buildAudit(url, now, response) {
13987
+ const audit = { url, resolvedAt: now().toISOString() };
13988
+ if (response) {
13989
+ audit.httpStatus = response.status;
13990
+ const retryAfter = parseRetryAfter(response.headers.get("retry-after"), now);
13991
+ if (retryAfter !== undefined) {
13992
+ audit.retryAfterSeconds = retryAfter;
13993
+ }
13994
+ }
13995
+ return audit;
13996
+ }
13997
+ function parseRetryAfter(header, now) {
13998
+ if (header === null || header.trim() === "") {
13999
+ return;
14000
+ }
14001
+ const seconds = Number(header.trim());
14002
+ if (Number.isInteger(seconds) && seconds >= 0) {
14003
+ return seconds;
14004
+ }
14005
+ const at = Date.parse(header);
14006
+ if (Number.isNaN(at)) {
14007
+ return;
14008
+ }
14009
+ return Math.max(0, Math.round((at - now().getTime()) / 1000));
14010
+ }
14011
+ function isJsonObject(body) {
14012
+ if (body.trim() === "") {
14013
+ return false;
14014
+ }
14015
+ let parsed;
14016
+ try {
14017
+ parsed = JSON.parse(body);
14018
+ } catch {
14019
+ return false;
14020
+ }
14021
+ return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed);
14022
+ }
14023
+ function unknown(subject, audit, reason, detail) {
14024
+ return { outcome: "unknown", subject, audit, reason, detail };
14025
+ }
14026
+ async function readToken(accessToken) {
14027
+ return typeof accessToken === "function" ? await accessToken() : accessToken;
14028
+ }
14029
+ function isAbortError(error) {
14030
+ const candidate = error instanceof Error && "cause" in error && error.cause instanceof Error ? error.cause : error;
14031
+ return candidate instanceof Error && candidate.name === "AbortError";
14032
+ }
14033
+ function describe(error) {
14034
+ return error instanceof Error ? error.message : String(error);
14035
+ }
14036
+ function requireValue(field, value) {
14037
+ if (value === undefined || value === null) {
14038
+ throw new RequiredError(field, `Required option "${field}" is missing.`);
14039
+ }
14040
+ }
14041
+ function requireText(field, value) {
14042
+ requireValue(field, value);
14043
+ if (typeof value !== "string" || value.trim() === "") {
14044
+ throw new RequiredError(field, `Required option "${field}" must be a non-empty string.`);
14045
+ }
14046
+ }
14047
+ var package_default = {
14048
+ name: "@uipath/project-packager",
14049
+ author: "UiPath",
14050
+ license: "SEE LICENSE IN LICENSE.txt",
14051
+ version: "1.203.0-preview.180",
14052
+ description: "UiPath Project Packager - core library for packing individual UiPath projects",
14053
+ type: "module",
14054
+ main: "./dist/index.js",
14055
+ exports: {
14056
+ ".": {
14057
+ types: "./dist/src/index.d.ts",
14058
+ default: "./dist/index.js"
14059
+ },
14060
+ "./node": {
14061
+ types: "./dist/src/node.d.ts",
14062
+ default: "./dist/node.js"
14063
+ },
14064
+ "./browser": {
14065
+ types: "./dist/src/browser.d.ts",
14066
+ default: "./dist/browser.js"
14067
+ }
14068
+ },
14069
+ types: "./dist/src/index.d.ts",
14070
+ repository: {
14071
+ type: "git",
14072
+ url: "https://github.com/UiPath/cli.git",
14073
+ directory: "packages/packager/project-packager"
14074
+ },
14075
+ publishConfig: {
14076
+ registry: "https://npm.pkg.github.com/"
14077
+ },
14078
+ files: [
14079
+ "dist"
14080
+ ],
14081
+ scripts: {
14082
+ build: "bun build ./src/index.ts --outdir dist --format esm --target browser --external @uipath/solutionpackager-tool-core --external '@uipath/filesystem/*' --external @uipath/filesystem --sourcemap=linked && bun build ./src/browser.ts --outdir dist --format esm --target browser --external @uipath/solutionpackager-tool-core --external '@uipath/filesystem/*' --external @uipath/filesystem --sourcemap=linked && bun build ./src/node.ts --outdir dist --format esm --target node --external @uipath/solutionpackager-tool-core --external '@uipath/filesystem/*' --external @uipath/filesystem --sourcemap=linked && tsc --emitDeclarationOnly --outDir dist",
14083
+ clean: "rimraf dist",
14084
+ test: "vitest run",
14085
+ e2e: "vitest run --config vitest.e2e.config.ts",
14086
+ "test:coverage": "vitest run --coverage",
14087
+ prepack: "bun run build",
14088
+ "publish:dry": "bun publish --dry-run",
14089
+ "publish:gh": "bun publish",
14090
+ "version:patch": "bun version patch --no-git-tag-version",
14091
+ "version:minor": "bun version minor --no-git-tag-version",
14092
+ "version:major": "bun version major --no-git-tag-version",
14093
+ lint: "biome check ."
14094
+ },
14095
+ dependencies: {
14096
+ "@uipath/aops-policy-sdk": "workspace:*",
14097
+ "@uipath/filesystem": "workspace:*",
14098
+ "@uipath/solutionpackager-tool-core": "workspace:*",
14099
+ "@uipath/common": "workspace:*"
14100
+ },
14101
+ peerDependencies: {
14102
+ fflate: "^0.8.2"
14103
+ },
14104
+ devDependencies: {
14105
+ "@types/node": "^25.5.2",
14106
+ "@uipath/resource-builder-tool": "2025.11.0-alpha4535-3530",
14107
+ "@uipath/tool-agent": "^2.0.0",
14108
+ "@uipath/packager-tool-apiworkflow": "workspace:*",
14109
+ "@uipath/packager-tool-connector": "workspace:*",
14110
+ "@uipath/packager-tool-flow": "workspace:*",
14111
+ "@uipath/packager-tool-functions": "workspace:*",
14112
+ "@uipath/packager-tool-webapp": "workspace:*",
14113
+ "@uipath/packager-tool-workflowcompiler": "workspace:*",
14114
+ "@vitest/coverage-v8": "^4.1.11",
14115
+ jsdom: "^30.0.1",
14116
+ typescript: "^7.0.2",
14117
+ "vite-tsconfig-paths": "^6.1.1",
14118
+ vitest: "^4.1.11"
14119
+ }
14120
+ };
14121
+
14122
+ class GovernancePolicyError extends Error {
14123
+ instructions;
14124
+ name = "GovernancePolicyError";
14125
+ constructor(message, instructions) {
14126
+ super(message);
14127
+ this.instructions = instructions;
14128
+ }
14129
+ }
14130
+ var LICENSE_TYPES = {
14131
+ NoLicense: "NoLicense",
14132
+ Development: "Development",
14133
+ Attended: "Attended",
14134
+ Unattended: "Unattended",
14135
+ StudioX: "StudioX",
14136
+ StudioPro: "StudioPro",
14137
+ AutomationKit: "AutomationKit"
14138
+ };
14139
+ var STUDIOWEB_PRODUCT = "StudioWeb";
14140
+ var ACQUIRE_LICENSE_PATH = "/orchestrator_/api/StudioWeb/AcquireLicense";
14141
+ var GOVERNANCE_SUBFOLDER = "governance";
14142
+ var GOVERNANCE_FILE_NAME = "governance-policy.json";
14143
+ var errorMessage = (error) => error instanceof Error ? error.message : String(error);
14144
+ var t = (key, params) => translate.t(`solutionpackager.governance.${key}`, params);
14145
+
14146
+ class GovernancePolicyService {
14147
+ fileSystem;
14148
+ temporaryStorage;
14149
+ fetchFn;
14150
+ logger = new ToolLogger("GovernancePolicyService", "ResolvePolicy");
14151
+ constructor(fileSystem, temporaryStorage, fetchFn = fetch.bind(globalThis)) {
14152
+ this.fileSystem = fileSystem;
14153
+ this.temporaryStorage = temporaryStorage;
14154
+ this.fetchFn = fetchFn;
14155
+ }
14156
+ async resolveGovernancePolicyAsync(validateOptions, connectionInfo, cancellationToken, usage = "pack") {
14157
+ if (validateOptions.governanceFileType === "Default") {
14158
+ return;
14159
+ }
14160
+ const suppliedFilePath = validateOptions.governanceFilePath;
14161
+ if (suppliedFilePath && validateOptions.governanceFileType === "AutomationOps") {
14162
+ this.logger.info(t("info.alreadyProvided"));
14163
+ return;
14164
+ }
14165
+ if (suppliedFilePath && usage === "analyze") {
14166
+ this.logger.info(t("info.alreadyProvided"));
14167
+ validateOptions.governanceFileType = "Studio";
14168
+ return;
14169
+ }
14170
+ const origin = this.resolveCloudOrigin(connectionInfo?.cloudUrl);
14171
+ const product = validateOptions.profileKey;
14172
+ if (!origin || !product || !connectionInfo?.organizationId || !connectionInfo.tenantId || !connectionInfo.accessToken) {
14173
+ if (suppliedFilePath) {
14174
+ this.logger.info(t("info.noTenantToAsk", { path: suppliedFilePath }));
14175
+ validateOptions.governanceFileType = "Studio";
14176
+ return;
14177
+ }
14178
+ this.warnAndUseShippedRules(validateOptions, t("errors.connectionIncomplete"));
14179
+ return;
14180
+ }
14181
+ const licenseType = await this.resolveLicenseTypeAsync(product, connectionInfo.cloudUrl?.replace(/\/+$/, "") ?? "", connectionInfo.accessToken, cancellationToken);
14182
+ const subject = {
14183
+ organizationId: connectionInfo.organizationId,
14184
+ tenantId: connectionInfo.tenantId,
14185
+ product,
14186
+ licenseType
14187
+ };
14188
+ this.logger.info(t("info.resolving", { product, licenseType }));
14189
+ const resolution = await resolvePolicyAsync({
14190
+ subject,
14191
+ baseUrl: origin,
14192
+ accessToken: connectionInfo.accessToken,
14193
+ clientVersion: package_default.version,
14194
+ fetch: this.fetchFn,
14195
+ signal: cancellationToken
14196
+ });
14197
+ await this.applyResolutionAsync(resolution, validateOptions, suppliedFilePath);
14198
+ }
14199
+ async applyResolutionAsync(resolution, validateOptions, suppliedFilePath) {
14200
+ switch (resolution.outcome) {
14201
+ case "governed":
14202
+ if (suppliedFilePath) {
14203
+ throw new GovernancePolicyError(t("errors.tenantPolicyWins", {
14204
+ product: resolution.subject.product,
14205
+ path: suppliedFilePath
14206
+ }), t("instructions.tenantPolicyWins"));
14207
+ }
14208
+ await this.savePolicyAsync(validateOptions, resolution.document);
14209
+ return;
14210
+ case "ungoverned":
14211
+ if (suppliedFilePath) {
14212
+ this.logger.info(t("info.suppliedFileHonoured", {
14213
+ path: suppliedFilePath
14214
+ }));
14215
+ validateOptions.governanceFileType = "Studio";
14216
+ return;
14217
+ }
14218
+ this.logger.info(t("info.ungoverned"));
14219
+ validateOptions.governanceFileType = "Default";
14220
+ return;
14221
+ case "unknown": {
14222
+ this.logger.warn(this.describeUnknown(resolution));
14223
+ if (suppliedFilePath) {
14224
+ this.logger.info(t("info.suppliedFileUnchecked", {
14225
+ path: suppliedFilePath
14226
+ }));
14227
+ validateOptions.governanceFileType = "Studio";
14228
+ return;
14229
+ }
14230
+ validateOptions.governanceFileType = "Default";
14231
+ return;
14232
+ }
14233
+ }
14234
+ }
14235
+ async savePolicyAsync(validateOptions, document) {
14236
+ try {
14237
+ const dir = await this.temporaryStorage.getTempSubfolderPathAsync(GOVERNANCE_SUBFOLDER);
14238
+ const filePath = Path.join(dir, GOVERNANCE_FILE_NAME);
14239
+ await this.fileSystem.writeFile(filePath, document);
14240
+ this.logger.info(t("info.saved", { path: filePath }));
14241
+ validateOptions.governanceFilePath = filePath;
14242
+ validateOptions.governanceFileType = "AutomationOps";
14243
+ } catch (error) {
14244
+ this.warnAndUseShippedRules(validateOptions, t("errors.failedToSave", { error: errorMessage(error) }));
14245
+ }
14246
+ }
14247
+ warnAndUseShippedRules(validateOptions, reason) {
14248
+ this.logger.warn(t("errors.fallingBackToDefault", { reason }));
14249
+ validateOptions.governanceFileType = "Default";
14250
+ }
14251
+ describeUnknown(resolution) {
14252
+ const reason = t("errors.unknownOutcome", {
14253
+ reason: resolution.reason,
14254
+ detail: resolution.detail,
14255
+ url: resolution.audit.url
14256
+ });
14257
+ const retryAfter = resolution.audit.retryAfterSeconds;
14258
+ return retryAfter === undefined ? reason : `${reason} ${t("errors.retryAfter", { seconds: retryAfter })}`;
14259
+ }
14260
+ resolveCloudOrigin(cloudUrl) {
14261
+ if (!cloudUrl) {
14262
+ return null;
14263
+ }
14264
+ try {
14265
+ return new URL(cloudUrl).origin;
14266
+ } catch {
14267
+ return null;
14268
+ }
14269
+ }
14270
+ async resolveLicenseTypeAsync(profileKey, cloudUrl, accessToken, cancellationToken) {
14271
+ const isStudioWeb = profileKey === STUDIOWEB_PRODUCT;
14272
+ const fallback = isStudioWeb ? LICENSE_TYPES.NoLicense : LICENSE_TYPES.Development;
14273
+ try {
14274
+ const response = await this.fetchFn(`${cloudUrl}${ACQUIRE_LICENSE_PATH}`, {
14275
+ method: "POST",
14276
+ headers: { Authorization: `Bearer ${accessToken}` },
14277
+ signal: cancellationToken
14278
+ });
14279
+ if (!response.ok) {
14280
+ this.logger.info(t("info.licenseStatus", {
14281
+ status: response.status,
14282
+ fallback
14283
+ }));
14284
+ return fallback;
14285
+ }
14286
+ const { isLicensed, robotType } = await response.json();
14287
+ this.logger.info(t("info.licenseResponse", {
14288
+ isLicensed: String(isLicensed),
14289
+ robotType: String(robotType)
14290
+ }));
14291
+ if (!isLicensed || !robotType) {
14292
+ return fallback;
14293
+ }
14294
+ if (isStudioWeb) {
14295
+ return robotType === LICENSE_TYPES.AutomationKit ? LICENSE_TYPES.AutomationKit : LICENSE_TYPES.NoLicense;
14296
+ }
14297
+ return robotType;
14298
+ } catch (error) {
14299
+ this.logger.info(t("info.licenseFailed", {
14300
+ error: errorMessage(error),
14301
+ fallback
14302
+ }));
14303
+ return fallback;
14304
+ }
14305
+ }
14306
+ }
14307
+ async function resolveProducedNupkgsAsync(fileSystem, packagePath) {
14308
+ if (packagePath.toLowerCase().endsWith(".nupkg")) {
14309
+ return [packagePath];
14310
+ }
14311
+ const stat2 = await fileSystem.stat(packagePath);
14312
+ if (!stat2?.isDirectory()) {
14313
+ return [];
14314
+ }
14315
+ const candidateDirs = [packagePath, fileSystem.path.dirname(packagePath)];
14316
+ for (const dir of candidateDirs) {
14317
+ const entries = await fileSystem.readdir(dir);
14318
+ const nupkgs = entries.filter((entry) => entry.toLowerCase().endsWith(".nupkg")).map((entry) => fileSystem.path.join(dir, entry));
14319
+ if (nupkgs.length > 0) {
14320
+ return nupkgs;
14321
+ }
14322
+ }
14323
+ return [];
14324
+ }
14325
+ var PACKAGE_ID_TOO_LONG = "PACKAGE_ID_TOO_LONG";
14326
+ function isPackageIdTooLongError(error) {
14327
+ return error instanceof Error && error.code === PACKAGE_ID_TOO_LONG;
14328
+ }
14329
+
14330
+ class PackService {
14331
+ disallowedCharsRegex = /[^\p{L}\p{N}_.-]/gu;
14332
+ spacesDotRegex = /[\s.]+/g;
14333
+ dotDashRegex = /\.{0,10}[-:]\.{0,10}/g;
14334
+ MaxPackageIdLength = 100;
14335
+ sanitizePackageId(packageId) {
14336
+ packageId = packageId.trim();
14337
+ packageId = packageId.replace(this.spacesDotRegex, ".");
14338
+ packageId = packageId.replace(this.dotDashRegex, "-");
14339
+ packageId = packageId.replace(this.disallowedCharsRegex, "_");
14340
+ if (packageId.length > this.MaxPackageIdLength) {
14341
+ const error = new Error(`Package id ${packageId} exceeds the characters limit of ${this.MaxPackageIdLength}`);
14342
+ error.code = PACKAGE_ID_TOO_LONG;
14343
+ error.packageId = packageId;
14344
+ error.maxLength = this.MaxPackageIdLength;
14345
+ throw error;
14346
+ }
14347
+ return packageId;
14348
+ }
14349
+ }
14350
+ async function signNupkgsAsync(signService, nupkgPaths, signingInfo) {
14351
+ if (!signingInfo?.certificatePath) {
14352
+ return ToolResult.success();
14353
+ }
14354
+ if (!signService) {
14355
+ return ToolResult.error(ToolErrorCodes.InternalError, "Package signing is required but signing service is not available. Package signing requires dotnet CLI to be installed in Node.js environment.");
14356
+ }
14357
+ const certificatePath = signingInfo.certificatePath;
14358
+ const toSign = [...new Set(nupkgPaths)];
14359
+ if (toSign.length === 0) {
14360
+ return ToolResult.success();
14361
+ }
14362
+ if (signService.signPackagesAsync) {
14363
+ return signService.signPackagesAsync(toSign, certificatePath, signingInfo.certificatePassword, signingInfo.timestampServer);
14364
+ }
14365
+ for (const packagePath of toSign) {
14366
+ const signResult = await signService.signPackageAsync(packagePath, certificatePath, signingInfo.certificatePassword, signingInfo.timestampServer);
14367
+ if (!signResult.isSuccess) {
14368
+ return signResult;
14369
+ }
14370
+ }
14371
+ return ToolResult.success();
14372
+ }
14373
+
14374
+ class PackagerParametersValidator {
14375
+ logger;
14376
+ fileSystem;
14377
+ constructor(logger2, fileSystem) {
14378
+ this.logger = logger2;
12344
14379
  this.fileSystem = fileSystem;
12345
14380
  }
12346
14381
  async validateAsync(_options, _cancellationToken) {
@@ -12723,7 +14758,7 @@ class ProjectPackager {
12723
14758
  }, cancellationToken);
12724
14759
  }
12725
14760
  async validateProjectAsync(options, cancellationToken) {
12726
- await this.governancePolicyService.resolveGovernancePolicyAsync(options.validateOptions, options.connection, cancellationToken);
14761
+ await this.governancePolicyService.resolveGovernancePolicyAsync(options.validateOptions, options.connection, cancellationToken, "analyze");
12727
14762
  const validationResult = await this.validateOptionsValidator.validateAsync(options, cancellationToken);
12728
14763
  if (!validationResult.isSuccess) {
12729
14764
  return validationResult;
@@ -12747,7 +14782,10 @@ class ProjectPackager {
12747
14782
  }, cancellationToken);
12748
14783
  }
12749
14784
  async buildProjectAsync(options, cancellationToken) {
12750
- await this.governancePolicyService.resolveGovernancePolicyAsync(options.validateOptions, options.connection, cancellationToken);
14785
+ const [governanceError] = await catchError(this.governancePolicyService.resolveGovernancePolicyAsync(options.validateOptions, options.connection, cancellationToken));
14786
+ if (governanceError) {
14787
+ return ToolResult.error(ToolErrorCodes.InternalError, `Project build failed: ${governanceError.message}`, carriedInstructions(governanceError));
14788
+ }
12751
14789
  const validationResult = await this.buildOptionsValidator.validateAsync(options, cancellationToken);
12752
14790
  if (!validationResult.isSuccess) {
12753
14791
  return validationResult;
@@ -12814,7 +14852,7 @@ class ProjectPackager {
12814
14852
  } catch (error) {
12815
14853
  const errorMessage2 = error instanceof Error ? error.message : String(error);
12816
14854
  this.logger.error(`Processing error: ${errorMessage2}`);
12817
- return ToolResult.error(ToolErrorCodes.InternalError, `Project pack failed: ${errorMessage2}`);
14855
+ return ToolResult.error(ToolErrorCodes.InternalError, `Project pack failed: ${errorMessage2}`, carriedInstructions(error));
12818
14856
  } finally {
12819
14857
  await this.temporaryStorage.cleanup();
12820
14858
  }
@@ -13175,78 +15213,6 @@ function addSdkUserAgentHeader(headers, userAgent) {
13175
15213
  result[headerName ?? USER_AGENT_HEADER] = appendUserAgentToken(headerName ? result[headerName] : undefined, getEffectiveUserAgent(userAgent));
13176
15214
  return result;
13177
15215
  }
13178
- var package_default = {
13179
- name: "@uipath/project-packager",
13180
- license: "SEE LICENSE IN LICENSE.txt",
13181
- version: "1.202.1",
13182
- description: "UiPath Project Packager - core library for packing individual UiPath projects",
13183
- type: "module",
13184
- main: "./dist/index.js",
13185
- exports: {
13186
- ".": {
13187
- types: "./dist/src/index.d.ts",
13188
- default: "./dist/index.js"
13189
- },
13190
- "./node": {
13191
- types: "./dist/src/node.d.ts",
13192
- default: "./dist/node.js"
13193
- },
13194
- "./browser": {
13195
- types: "./dist/src/browser.d.ts",
13196
- default: "./dist/browser.js"
13197
- }
13198
- },
13199
- types: "./dist/src/index.d.ts",
13200
- repository: {
13201
- type: "git",
13202
- url: "https://github.com/UiPath/cli.git",
13203
- directory: "packages/packager/project-packager"
13204
- },
13205
- publishConfig: {
13206
- registry: "https://npm.pkg.github.com/"
13207
- },
13208
- files: [
13209
- "dist"
13210
- ],
13211
- scripts: {
13212
- build: "bun build ./src/index.ts --outdir dist --format esm --target browser --external @uipath/solutionpackager-tool-core --external '@uipath/filesystem/*' --external @uipath/filesystem --sourcemap=linked && bun build ./src/browser.ts --outdir dist --format esm --target browser --external @uipath/solutionpackager-tool-core --external '@uipath/filesystem/*' --external @uipath/filesystem --sourcemap=linked && bun build ./src/node.ts --outdir dist --format esm --target node --external @uipath/solutionpackager-tool-core --external '@uipath/filesystem/*' --external @uipath/filesystem --sourcemap=linked && tsc --emitDeclarationOnly --outDir dist",
13213
- clean: "rimraf dist",
13214
- test: "vitest run",
13215
- e2e: "vitest run --config vitest.e2e.config.ts",
13216
- "test:coverage": "vitest run --coverage",
13217
- prepack: "bun run build",
13218
- "publish:dry": "bun publish --dry-run",
13219
- "publish:gh": "bun publish",
13220
- "version:patch": "bun version patch --no-git-tag-version",
13221
- "version:minor": "bun version minor --no-git-tag-version",
13222
- "version:major": "bun version major --no-git-tag-version",
13223
- lint: "biome check ."
13224
- },
13225
- dependencies: {
13226
- "@uipath/filesystem": "workspace:*",
13227
- "@uipath/solutionpackager-tool-core": "workspace:*",
13228
- "@uipath/common": "workspace:*"
13229
- },
13230
- peerDependencies: {
13231
- fflate: "^0.8.2"
13232
- },
13233
- devDependencies: {
13234
- "@types/node": "^25.5.2",
13235
- "@uipath/resource-builder-tool": "1.0.0-s202-16635",
13236
- "@uipath/tool-agent": "^2.0.0",
13237
- "@uipath/packager-tool-apiworkflow": "workspace:*",
13238
- "@uipath/packager-tool-connector": "workspace:*",
13239
- "@uipath/packager-tool-flow": "workspace:*",
13240
- "@uipath/packager-tool-functions": "workspace:*",
13241
- "@uipath/packager-tool-webapp": "workspace:*",
13242
- "@uipath/packager-tool-workflowcompiler": "workspace:*",
13243
- "@vitest/coverage-v8": "^4.1.11",
13244
- jsdom: "^30.0.1",
13245
- typescript: "^7.0.2",
13246
- "vite-tsconfig-paths": "^6.1.1",
13247
- vitest: "^4.1.11"
13248
- }
13249
- };
13250
15216
  var HEADER_TENANT_ID = "X-UIPATH-TenantId";
13251
15217
  var FEEDS_PATH = "/api/PackageFeeds/GetFeeds";
13252
15218
  var FOLDERS_PATH = "/api/FoldersNavigation/GetAllFoldersForCurrentUser";
@@ -13601,6 +15567,7 @@ export {
13601
15567
  GovernancePolicyService,
13602
15568
  NodeContextStorage,
13603
15569
  NodePackageSignService,
15570
+ PACKAGE_ID_TOO_LONG,
13604
15571
  PackService,
13605
15572
  PackagerParameters,
13606
15573
  PackagerParametersValidator,
@@ -13624,9 +15591,10 @@ export {
13624
15591
  ToolsFactory,
13625
15592
  createNodeProjectPackager,
13626
15593
  createNodeProjectPublisher,
15594
+ isPackageIdTooLongError,
13627
15595
  resolveProducedNupkgsAsync,
13628
15596
  setGlobalLogHandler,
13629
15597
  signNupkgsAsync
13630
15598
  };
13631
15599
 
13632
- //# debugId=11FD36B10FCB49FA64756E2164756E21
15600
+ //# debugId=F752468D55895A0264756E2164756E21