@uipath/solution-tool 1.204.0-preview.250 → 1.204.0-preview.254
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -14
- package/dist/THIRD-PARTY-NOTICES.md +32 -1
- package/dist/{deploy-delete-service-nnmz7drx.js → deploy-delete-service-7fms6rrp.js} +5 -5
- package/dist/{deploy-status-service-w27q7y6y.js → deploy-status-service-sa302ab9.js} +5 -5
- package/dist/deploy.js +7 -7
- package/dist/{deployment-search-9q8njj3v.js → deployment-search-692d15j3.js} +2 -2
- package/dist/{feed-resolver-6k5kg0mc.js → feed-resolver-yybwzmh6.js} +2 -2
- package/dist/{feed-scope-failure-yajs7f63.js → feed-scope-failure-kf94beem.js} +3 -3
- package/dist/index.js +10 -10
- package/dist/{list-fejfazxk.js → list-0qrxqrfn.js} +1 -1
- package/dist/pack.js +1 -1
- package/dist/{packager-tool-wfmk3vrp.js → packager-tool-13dsb9e6.js} +1 -1
- package/dist/{packager-tool-0r5dfqf7.js → packager-tool-4ytxbjez.js} +2 -2
- package/dist/{packager-tool-jcmvg1c8.js → packager-tool-5v92rtp2.js} +1 -1
- package/dist/{packager-tool-gtq04gb8.js → packager-tool-8sx1w3h1.js} +2 -2
- package/dist/{packager-tool-1w8azcph.js → packager-tool-97w8aw8y.js} +25 -14
- package/dist/{packager-tool-cs7m7p4s.js → packager-tool-9z1yxjme.js} +334 -54
- package/dist/{packager-tool-kmp7pr6b.js → packager-tool-d9ethrmn.js} +1 -1
- package/dist/{packager-tool-bz0a3nar.js → packager-tool-dapys0dd.js} +5 -5
- package/dist/{packager-tool-gyse32qf.js → packager-tool-erp9bv22.js} +2 -2
- package/dist/{packager-tool-2tja89af.js → packager-tool-v8rseyfk.js} +1 -1
- package/dist/{packager-tool-e2ep9x52.js → packager-tool-wjk91v0q.js} +1 -1
- package/dist/publish.js +3 -3
- package/dist/templates/AGENTS.md +2 -0
- package/dist/tool.js +10 -10
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -68,6 +68,10 @@ Directories (matched by exact name at any depth):
|
|
|
68
68
|
- `node_modules` — Node dependency caches.
|
|
69
69
|
- `__pycache__` — Python bytecode caches.
|
|
70
70
|
- `.git` — VCS metadata.
|
|
71
|
+
- `.local` — Studio's per-project NuGet restore cache; Studio Web restores
|
|
72
|
+
its own packages on import.
|
|
73
|
+
- `.flow-sdk` — the Maestro builder SDK's authoring work directory; Studio
|
|
74
|
+
Web gets the compiled `.flow` beside it.
|
|
71
75
|
|
|
72
76
|
Files (matched by name pattern at any depth):
|
|
73
77
|
|
|
@@ -77,30 +81,52 @@ Files (matched by name pattern at any depth):
|
|
|
77
81
|
are never shipped in the bundle. Lookalikes such as `.envrc`,
|
|
78
82
|
`.environment`, and `myenv.txt` are kept.
|
|
79
83
|
|
|
80
|
-
To
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
To leave more out of the `.uis` bundle that `uip solution upload` sends to
|
|
85
|
+
Studio Web, add a `.uipignore` file at the solution root (next to the
|
|
86
|
+
`.uipx` file). It uses `.gitignore` syntax: a bare name (`dist`) matches a
|
|
87
|
+
file or directory of that name at any depth, a trailing `/` matches
|
|
88
|
+
directories only, a leading `/` or a `/` in the middle anchors the pattern
|
|
89
|
+
to the folder holding the `.uipignore`, `*` / `**` are globs, and `!`
|
|
90
|
+
re-includes something an earlier pattern excluded. A line starting with `#`
|
|
91
|
+
is a comment; a `#` anywhere else is part of the pattern, so keep comments
|
|
92
|
+
on their own line. Matching ignores case, so `Dist` also excludes `dist/`.
|
|
93
|
+
The built-in defaults above always apply and cannot be re-included. A
|
|
94
|
+
pattern that would drop a project the `.uipx` lists — its folder name, or
|
|
95
|
+
`*.uiproj` — is refused with an error, since the archive would still
|
|
96
|
+
reference the project; take the project out with `uip solution projects
|
|
97
|
+
remove` instead. `uip solution pack` does not read this file.
|
|
98
|
+
|
|
99
|
+
Earlier CLI versions accepted only bare directory names in `.uipignore` and
|
|
100
|
+
allowed a trailing `# comment` after a name. Bare names keep working; a
|
|
101
|
+
trailing comment is now part of the pattern, so move it to its own line.
|
|
86
102
|
|
|
87
103
|
Example `.uipignore`:
|
|
88
104
|
|
|
89
105
|
```gitignore
|
|
90
106
|
# project-specific build artifacts
|
|
91
107
|
dist
|
|
92
|
-
coverage
|
|
108
|
+
coverage/
|
|
93
109
|
|
|
94
|
-
#
|
|
95
|
-
|
|
110
|
+
# logs anywhere, except one we want to keep
|
|
111
|
+
*.log
|
|
112
|
+
!important.log
|
|
113
|
+
|
|
114
|
+
# a folder inside one project, relative to the solution root
|
|
115
|
+
MyAgent/generated/
|
|
96
116
|
```
|
|
97
117
|
|
|
98
118
|
A `.uipignore` may also be placed at a **project root** (next to that
|
|
99
|
-
project's `project.uiproj`). Its
|
|
100
|
-
are
|
|
101
|
-
defaults. Use this when an
|
|
102
|
-
|
|
103
|
-
|
|
119
|
+
project's `project.uiproj`). Its patterns are matched relative to that
|
|
120
|
+
project's root, apply to that project only, and are added on top of the
|
|
121
|
+
solution-root `.uipignore` and the built-in defaults. Use this when an
|
|
122
|
+
exclude should apply to one project but not its siblings (a solution-root
|
|
123
|
+
entry, by contrast, applies to every project unless it names a path). A
|
|
124
|
+
project file can add excludes but cannot re-include (`!`) something the
|
|
125
|
+
solution-root file already excluded.
|
|
126
|
+
|
|
127
|
+
`uip codedapp push` reads the same `.uipignore` file (plus the app's
|
|
128
|
+
`.gitignore`), so one file controls both commands. Its older
|
|
129
|
+
`.uipathignore` is still read but deprecated — rename it to `.uipignore`.
|
|
104
130
|
|
|
105
131
|
The bundler logs which additional excludes are being applied at upload
|
|
106
132
|
time so the effective set is visible in CI logs.
|
|
@@ -5,7 +5,7 @@ compiled into its `dist/` output rather than installed alongside it.
|
|
|
5
5
|
Their licences and copyright notices are reproduced here in full, as
|
|
6
6
|
those licences require.
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
23 bundled dependencies:
|
|
9
9
|
|
|
10
10
|
- @uipath/resource-builder-sdk@2025.11.0-alpha6004-4107 — ISC
|
|
11
11
|
- @uipath/resource-builder-tool@2025.11.0-alpha6004-4107 — ISC
|
|
@@ -15,6 +15,7 @@ those licences require.
|
|
|
15
15
|
- default-browser-id@5.0.1 — MIT
|
|
16
16
|
- define-lazy-prop@3.0.0 — MIT
|
|
17
17
|
- fflate@0.8.3 — MIT
|
|
18
|
+
- ignore@5.3.2 — MIT
|
|
18
19
|
- is-docker@3.0.0 — MIT
|
|
19
20
|
- is-in-ssh@1.0.0 — MIT
|
|
20
21
|
- is-inside-container@1.0.0 — MIT
|
|
@@ -185,6 +186,36 @@ SOFTWARE.
|
|
|
185
186
|
|
|
186
187
|
---
|
|
187
188
|
|
|
189
|
+
## ignore@5.3.2
|
|
190
|
+
|
|
191
|
+
SPDX: MIT
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
Copyright (c) 2013 Kael Zhang <i@kael.me>, contributors
|
|
195
|
+
http://kael.me/
|
|
196
|
+
|
|
197
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
198
|
+
a copy of this software and associated documentation files (the
|
|
199
|
+
"Software"), to deal in the Software without restriction, including
|
|
200
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
201
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
202
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
203
|
+
the following conditions:
|
|
204
|
+
|
|
205
|
+
The above copyright notice and this permission notice shall be
|
|
206
|
+
included in all copies or substantial portions of the Software.
|
|
207
|
+
|
|
208
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
209
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
210
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
211
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
212
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
213
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
214
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
188
219
|
## is-docker@3.0.0
|
|
189
220
|
|
|
190
221
|
SPDX: MIT
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
deleteDeploymentAsync
|
|
3
|
-
} from "./packager-tool-
|
|
4
|
-
import"./packager-tool-
|
|
5
|
-
import"./packager-tool-
|
|
3
|
+
} from "./packager-tool-4ytxbjez.js";
|
|
4
|
+
import"./packager-tool-erp9bv22.js";
|
|
5
|
+
import"./packager-tool-v8rseyfk.js";
|
|
6
6
|
import"./packager-tool-7gr2nphb.js";
|
|
7
|
-
import"./packager-tool-
|
|
8
|
-
import"./packager-tool-
|
|
7
|
+
import"./packager-tool-d9ethrmn.js";
|
|
8
|
+
import"./packager-tool-9z1yxjme.js";
|
|
9
9
|
import"./packager-tool-bqre28m1.js";
|
|
10
10
|
import"./packager-tool-f5gq77m5.js";
|
|
11
11
|
import"./packager-tool-zdfn32bc.js";
|
|
@@ -3,19 +3,19 @@ import {
|
|
|
3
3
|
needsPendingResources,
|
|
4
4
|
quoteForShell,
|
|
5
5
|
readPendingResourcesAsync
|
|
6
|
-
} from "./packager-tool-
|
|
6
|
+
} from "./packager-tool-13dsb9e6.js";
|
|
7
7
|
import {
|
|
8
8
|
INCOMPLETE_SWEEP_ADVICE,
|
|
9
9
|
findDeploymentAcrossFeeds,
|
|
10
10
|
reportIncompleteSweepAsync
|
|
11
|
-
} from "./packager-tool-
|
|
11
|
+
} from "./packager-tool-erp9bv22.js";
|
|
12
12
|
import {
|
|
13
13
|
DeploymentSearchNeedsUserSessionError,
|
|
14
14
|
findCurrentDeploymentAsync,
|
|
15
15
|
findDeploymentByName,
|
|
16
16
|
httpStatusOf,
|
|
17
17
|
isAuthRefusal
|
|
18
|
-
} from "./packager-tool-
|
|
18
|
+
} from "./packager-tool-v8rseyfk.js";
|
|
19
19
|
import {
|
|
20
20
|
Configuration as Configuration2,
|
|
21
21
|
PipelinesApi
|
|
@@ -24,11 +24,11 @@ import {
|
|
|
24
24
|
feedScopeInitOverride,
|
|
25
25
|
feedSelectorFlag,
|
|
26
26
|
folderKeyInitOverride
|
|
27
|
-
} from "./packager-tool-
|
|
27
|
+
} from "./packager-tool-d9ethrmn.js";
|
|
28
28
|
import {
|
|
29
29
|
Configuration,
|
|
30
30
|
DeploymentsApi
|
|
31
|
-
} from "./packager-tool-
|
|
31
|
+
} from "./packager-tool-9z1yxjme.js";
|
|
32
32
|
import {
|
|
33
33
|
FeedReadRefusedError,
|
|
34
34
|
classifyFeedSession,
|
package/dist/deploy.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
deleteDeploymentAsync
|
|
3
|
-
} from "./packager-tool-
|
|
3
|
+
} from "./packager-tool-4ytxbjez.js";
|
|
4
4
|
import {
|
|
5
5
|
activateDeploymentAsync,
|
|
6
6
|
deployRunAsync,
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
listPackagesAsync,
|
|
9
9
|
uninstallDeploymentAsync,
|
|
10
10
|
upgradeDeploymentAsync
|
|
11
|
-
} from "./packager-tool-
|
|
12
|
-
import"./packager-tool-
|
|
13
|
-
import"./packager-tool-
|
|
14
|
-
import"./packager-tool-
|
|
11
|
+
} from "./packager-tool-dapys0dd.js";
|
|
12
|
+
import"./packager-tool-13dsb9e6.js";
|
|
13
|
+
import"./packager-tool-erp9bv22.js";
|
|
14
|
+
import"./packager-tool-v8rseyfk.js";
|
|
15
15
|
import"./packager-tool-7gr2nphb.js";
|
|
16
|
-
import"./packager-tool-
|
|
17
|
-
import"./packager-tool-
|
|
16
|
+
import"./packager-tool-d9ethrmn.js";
|
|
17
|
+
import"./packager-tool-9z1yxjme.js";
|
|
18
18
|
import"./packager-tool-bqre28m1.js";
|
|
19
19
|
import"./packager-tool-f5gq77m5.js";
|
|
20
20
|
import"./packager-tool-zdfn32bc.js";
|
|
@@ -16,9 +16,9 @@ import {
|
|
|
16
16
|
mapOperationStatusToPipelineStatus,
|
|
17
17
|
newestDeploymentRow,
|
|
18
18
|
resolveInstalledFolder
|
|
19
|
-
} from "./packager-tool-
|
|
19
|
+
} from "./packager-tool-v8rseyfk.js";
|
|
20
20
|
import"./packager-tool-7gr2nphb.js";
|
|
21
|
-
import"./packager-tool-
|
|
21
|
+
import"./packager-tool-9z1yxjme.js";
|
|
22
22
|
import"./packager-tool-bqre28m1.js";
|
|
23
23
|
import"./packager-tool-f2e9rzxk.js";
|
|
24
24
|
import"./packager-tool-kswwd3hp.js";
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
feedSelectorFlag,
|
|
6
6
|
folderKeyInitOverride,
|
|
7
7
|
resolveFeedScope
|
|
8
|
-
} from "./packager-tool-
|
|
9
|
-
import"./packager-tool-
|
|
8
|
+
} from "./packager-tool-d9ethrmn.js";
|
|
9
|
+
import"./packager-tool-9z1yxjme.js";
|
|
10
10
|
import"./packager-tool-bqre28m1.js";
|
|
11
11
|
import"./packager-tool-zdfn32bc.js";
|
|
12
12
|
import"./packager-tool-f2e9rzxk.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveFeedScopeOrFailureAsync
|
|
3
|
-
} from "./packager-tool-
|
|
4
|
-
import"./packager-tool-
|
|
5
|
-
import"./packager-tool-
|
|
3
|
+
} from "./packager-tool-5v92rtp2.js";
|
|
4
|
+
import"./packager-tool-d9ethrmn.js";
|
|
5
|
+
import"./packager-tool-9z1yxjme.js";
|
|
6
6
|
import"./packager-tool-bqre28m1.js";
|
|
7
7
|
import"./packager-tool-zdfn32bc.js";
|
|
8
8
|
import"./packager-tool-f2e9rzxk.js";
|
package/dist/index.js
CHANGED
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
import {
|
|
3
3
|
metadata,
|
|
4
4
|
registerCommands
|
|
5
|
-
} from "./packager-tool-
|
|
5
|
+
} from "./packager-tool-97w8aw8y.js";
|
|
6
6
|
import"./packager-tool-v8bkkqdb.js";
|
|
7
|
-
import"./packager-tool-
|
|
8
|
-
import"./packager-tool-
|
|
9
|
-
import"./packager-tool-
|
|
10
|
-
import"./packager-tool-
|
|
11
|
-
import"./packager-tool-
|
|
7
|
+
import"./packager-tool-5v92rtp2.js";
|
|
8
|
+
import"./packager-tool-dapys0dd.js";
|
|
9
|
+
import"./packager-tool-13dsb9e6.js";
|
|
10
|
+
import"./packager-tool-erp9bv22.js";
|
|
11
|
+
import"./packager-tool-v8rseyfk.js";
|
|
12
12
|
import"./packager-tool-px1j9kre.js";
|
|
13
|
-
import"./packager-tool-
|
|
13
|
+
import"./packager-tool-8sx1w3h1.js";
|
|
14
14
|
import"./packager-tool-gab9y5ct.js";
|
|
15
15
|
import"./packager-tool-1rzssy0x.js";
|
|
16
16
|
import"./packager-tool-e2rtr49j.js";
|
|
17
17
|
import"./packager-tool-zns6n8zp.js";
|
|
18
|
-
import"./packager-tool-
|
|
18
|
+
import"./packager-tool-wjk91v0q.js";
|
|
19
19
|
import"./packager-tool-7gr2nphb.js";
|
|
20
|
-
import"./packager-tool-
|
|
21
|
-
import"./packager-tool-
|
|
20
|
+
import"./packager-tool-d9ethrmn.js";
|
|
21
|
+
import"./packager-tool-9z1yxjme.js";
|
|
22
22
|
import"./packager-tool-bqre28m1.js";
|
|
23
23
|
import"./packager-tool-yrz4mwfn.js";
|
|
24
24
|
import"./packager-tool-gdtpsdn7.js";
|
package/dist/pack.js
CHANGED
|
@@ -2,12 +2,12 @@ import {
|
|
|
2
2
|
INCOMPLETE_SWEEP_ADVICE,
|
|
3
3
|
findDeploymentAcrossFeeds,
|
|
4
4
|
reportIncompleteSweepAsync
|
|
5
|
-
} from "./packager-tool-
|
|
5
|
+
} from "./packager-tool-erp9bv22.js";
|
|
6
6
|
import {
|
|
7
7
|
Configuration,
|
|
8
8
|
DeploymentsApi,
|
|
9
9
|
WorkflowAction
|
|
10
|
-
} from "./packager-tool-
|
|
10
|
+
} from "./packager-tool-9z1yxjme.js";
|
|
11
11
|
import {
|
|
12
12
|
getSolutionAuthContext
|
|
13
13
|
} from "./packager-tool-f5gq77m5.js";
|
|
@@ -3499,7 +3499,7 @@ var package_default = {
|
|
|
3499
3499
|
name: "@uipath/project-packager",
|
|
3500
3500
|
author: "UiPath",
|
|
3501
3501
|
license: "SEE LICENSE IN LICENSE.txt",
|
|
3502
|
-
version: "1.204.0-preview.
|
|
3502
|
+
version: "1.204.0-preview.254",
|
|
3503
3503
|
description: "UiPath Project Packager - core library for packing individual UiPath projects",
|
|
3504
3504
|
type: "module",
|
|
3505
3505
|
main: "./dist/index.js",
|
|
@@ -5887,4 +5887,4 @@ async function packSolutionAsync(solutionPath, options) {
|
|
|
5887
5887
|
|
|
5888
5888
|
export { SolutionPackOptions, createSolutionPackager, readSolutionFileAsUint8Array, resolveSdkLogLevel, applyAuthConnection, SOLUTION_PATH_INSTRUCTIONS, checkSolutionPathAsync, GOVERNANCE_OPTION_INSTRUCTIONS, validateGovernanceOptions, PackCommandService, packSolutionAsync };
|
|
5889
5889
|
|
|
5890
|
-
//# debugId=
|
|
5890
|
+
//# debugId=7AEEC7782A4D86AA64756E2164756E21
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./packager-tool-v8bkkqdb.js";
|
|
5
5
|
import {
|
|
6
6
|
resolveFeedScopeOrFailureAsync
|
|
7
|
-
} from "./packager-tool-
|
|
7
|
+
} from "./packager-tool-5v92rtp2.js";
|
|
8
8
|
import {
|
|
9
9
|
activateDeploymentAsync,
|
|
10
10
|
deployRunAsync,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
listPackagesAsync,
|
|
15
15
|
uninstallDeploymentAsync,
|
|
16
16
|
upgradeDeploymentAsync
|
|
17
|
-
} from "./packager-tool-
|
|
17
|
+
} from "./packager-tool-dapys0dd.js";
|
|
18
18
|
import {
|
|
19
19
|
SolutionInitError,
|
|
20
20
|
solutionInitAsync
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
readSolutionFileAsUint8Array,
|
|
32
32
|
resolveSdkLogLevel,
|
|
33
33
|
validateGovernanceOptions
|
|
34
|
-
} from "./packager-tool-
|
|
34
|
+
} from "./packager-tool-8sx1w3h1.js";
|
|
35
35
|
import {
|
|
36
36
|
prepareSolutionResources
|
|
37
37
|
} from "./packager-tool-gab9y5ct.js";
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
} from "./packager-tool-e2rtr49j.js";
|
|
43
43
|
import {
|
|
44
44
|
publishSolutionAsync
|
|
45
|
-
} from "./packager-tool-
|
|
45
|
+
} from "./packager-tool-wjk91v0q.js";
|
|
46
46
|
import {
|
|
47
47
|
Configuration,
|
|
48
48
|
PipelinesApi
|
|
@@ -50,11 +50,12 @@ import {
|
|
|
50
50
|
import {
|
|
51
51
|
feedScopeInitOverride,
|
|
52
52
|
listSelectablePublishLocations
|
|
53
|
-
} from "./packager-tool-
|
|
53
|
+
} from "./packager-tool-d9ethrmn.js";
|
|
54
54
|
import {
|
|
55
55
|
DeploymentActivationStatus,
|
|
56
56
|
DeploymentOperationStatus,
|
|
57
57
|
StudioWebIncompatibleProjectError,
|
|
58
|
+
UipignoreExcludesProjectError,
|
|
58
59
|
buildSolutionUploadFailureOutput,
|
|
59
60
|
bundleSolution,
|
|
60
61
|
getProjectDebugStatus,
|
|
@@ -64,7 +65,7 @@ import {
|
|
|
64
65
|
isSolutionUploadHttpError,
|
|
65
66
|
overwriteSolution,
|
|
66
67
|
solutionExistsOnStudioWeb
|
|
67
|
-
} from "./packager-tool-
|
|
68
|
+
} from "./packager-tool-9z1yxjme.js";
|
|
68
69
|
import {
|
|
69
70
|
applyEntryPointEnhancementAsync,
|
|
70
71
|
assertSolutionManifest,
|
|
@@ -165,7 +166,7 @@ var package_default = {
|
|
|
165
166
|
name: "@uipath/solution-tool",
|
|
166
167
|
author: "UiPath",
|
|
167
168
|
license: "SEE LICENSE IN LICENSE.txt",
|
|
168
|
-
version: "1.204.0-preview.
|
|
169
|
+
version: "1.204.0-preview.254",
|
|
169
170
|
description: "Create, pack, publish, and deploy UiPath Automation Solutions.",
|
|
170
171
|
repository: {
|
|
171
172
|
type: "git",
|
|
@@ -1052,7 +1053,7 @@ var registerDeployDeleteCommand = (program) => {
|
|
|
1052
1053
|
if (!requireConfirmation(options, `delete deployment '${deploymentName}'`)) {
|
|
1053
1054
|
return;
|
|
1054
1055
|
}
|
|
1055
|
-
const { deleteDeploymentAsync } = await import("./deploy-delete-service-
|
|
1056
|
+
const { deleteDeploymentAsync } = await import("./deploy-delete-service-7fms6rrp.js");
|
|
1056
1057
|
const result = await deleteDeploymentAsync(deploymentName, {
|
|
1057
1058
|
tenant: options.tenant,
|
|
1058
1059
|
loginValidity: options.loginValidity
|
|
@@ -1580,7 +1581,7 @@ var registerDeployStatusCommand = (program) => {
|
|
|
1580
1581
|
processContext.exit(1);
|
|
1581
1582
|
return;
|
|
1582
1583
|
}
|
|
1583
|
-
const { feedScopeInitOverride: feedScopeInitOverride2 } = await import("./feed-resolver-
|
|
1584
|
+
const { feedScopeInitOverride: feedScopeInitOverride2 } = await import("./feed-resolver-yybwzmh6.js");
|
|
1584
1585
|
const { FeedReadRefusedError, feedReadRefusalForApplication } = await import("./feed-session-sxga31vn.js");
|
|
1585
1586
|
const refuseFeed = (action) => {
|
|
1586
1587
|
const refusal = feedReadRefusalForApplication(auth, action);
|
|
@@ -1600,14 +1601,14 @@ var registerDeployStatusCommand = (program) => {
|
|
|
1600
1601
|
if (options.personalWorkspace === true && refuseFeed("Reading a Personal Workspace deployment")) {
|
|
1601
1602
|
return;
|
|
1602
1603
|
}
|
|
1603
|
-
const { resolveFeedScopeOrFailureAsync: resolveFeedScopeOrFailureAsync2 } = await import("./feed-scope-failure-
|
|
1604
|
+
const { resolveFeedScopeOrFailureAsync: resolveFeedScopeOrFailureAsync2 } = await import("./feed-scope-failure-kf94beem.js");
|
|
1604
1605
|
const [scopeFailure, feedScope] = await resolveFeedScopeOrFailureAsync2(options, auth);
|
|
1605
1606
|
if (scopeFailure) {
|
|
1606
1607
|
OutputFormatter.error(scopeFailure);
|
|
1607
1608
|
processContext.exit(1);
|
|
1608
1609
|
return;
|
|
1609
1610
|
}
|
|
1610
|
-
const { describeDeploymentAsync, looksLikeDeploymentKey } = await import("./deploy-status-service-
|
|
1611
|
+
const { describeDeploymentAsync, looksLikeDeploymentKey } = await import("./deploy-status-service-sa302ab9.js");
|
|
1611
1612
|
if (feedScope.kind !== "tenant" && !looksLikeDeploymentKey(deployment) && refuseFeed(`Reading a deployment in the feed '${feedScope.name ?? feedScope.folderKey}'`)) {
|
|
1612
1613
|
return;
|
|
1613
1614
|
}
|
|
@@ -1648,7 +1649,7 @@ var registerDeployStatusCommand = (program) => {
|
|
|
1648
1649
|
const api = new PipelinesApi(configuration);
|
|
1649
1650
|
const [statusError, result] = await catchError(api.pipelinesGetPipelineDeploymentStatus({ pipelineDeploymentId: deployment }, feedSelected ? feedScopeInitOverride2(feedScope) : undefined));
|
|
1650
1651
|
if (statusError) {
|
|
1651
|
-
const { isPipelineDeploymentNotFoundError } = await import("./deployment-search-
|
|
1652
|
+
const { isPipelineDeploymentNotFoundError } = await import("./deployment-search-692d15j3.js");
|
|
1652
1653
|
if (await isPipelineDeploymentNotFoundError(statusError)) {
|
|
1653
1654
|
const [stateError, state] = await catchError(describe());
|
|
1654
1655
|
if (stateError instanceof FeedReadRefusedError) {
|
|
@@ -6577,6 +6578,16 @@ var registerUploadCommand = (program) => {
|
|
|
6577
6578
|
processContext.exit(1);
|
|
6578
6579
|
return;
|
|
6579
6580
|
}
|
|
6581
|
+
if (bundleError instanceof UipignoreExcludesProjectError) {
|
|
6582
|
+
OutputFormatter.error({
|
|
6583
|
+
Result: RESULTS.Failure,
|
|
6584
|
+
ErrorCode: "invalid_argument",
|
|
6585
|
+
Message: bundleError.message,
|
|
6586
|
+
Instructions: "Remove or narrow the .uipignore pattern that matches the project (check the solution-root and the project's own .uipignore), or take the project out of the solution with 'uip solution projects remove' before uploading."
|
|
6587
|
+
});
|
|
6588
|
+
processContext.exit(1);
|
|
6589
|
+
return;
|
|
6590
|
+
}
|
|
6580
6591
|
outputError(bundleError.message);
|
|
6581
6592
|
return;
|
|
6582
6593
|
}
|
|
@@ -6771,7 +6782,7 @@ var registerCommands = async (program) => {
|
|
|
6771
6782
|
registerResourceCommand(program);
|
|
6772
6783
|
registerDeleteCommand(program);
|
|
6773
6784
|
if (isPreviewBuild()) {
|
|
6774
|
-
const { registerListCommand } = await import("./list-
|
|
6785
|
+
const { registerListCommand } = await import("./list-0qrxqrfn.js");
|
|
6775
6786
|
registerListCommand(program);
|
|
6776
6787
|
}
|
|
6777
6788
|
registerFeedsCommand(program);
|
|
@@ -6779,4 +6790,4 @@ var registerCommands = async (program) => {
|
|
|
6779
6790
|
|
|
6780
6791
|
export { metadata, registerCommands };
|
|
6781
6792
|
|
|
6782
|
-
//# debugId=
|
|
6793
|
+
//# debugId=95218FC1DF6854C164756E2164756E21
|
|
@@ -13,6 +13,270 @@ import {
|
|
|
13
13
|
import {
|
|
14
14
|
zipSync
|
|
15
15
|
} from "./packager-tool-dfrk01gn.js";
|
|
16
|
+
import {
|
|
17
|
+
__commonJS,
|
|
18
|
+
__toESM
|
|
19
|
+
} from "./packager-tool-1de529jm.js";
|
|
20
|
+
|
|
21
|
+
// ../../node_modules/ignore/index.js
|
|
22
|
+
var require_ignore = __commonJS(function(exports, module) {
|
|
23
|
+
function makeArray(subject) {
|
|
24
|
+
return Array.isArray(subject) ? subject : [subject];
|
|
25
|
+
}
|
|
26
|
+
var EMPTY = "";
|
|
27
|
+
var SPACE = " ";
|
|
28
|
+
var ESCAPE = "\\";
|
|
29
|
+
var REGEX_TEST_BLANK_LINE = /^\s+$/;
|
|
30
|
+
var REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\]|^)\\$/;
|
|
31
|
+
var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/;
|
|
32
|
+
var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/;
|
|
33
|
+
var REGEX_SPLITALL_CRLF = /\r?\n/g;
|
|
34
|
+
var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/;
|
|
35
|
+
var SLASH = "/";
|
|
36
|
+
var TMP_KEY_IGNORE = "node-ignore";
|
|
37
|
+
if (typeof Symbol !== "undefined") {
|
|
38
|
+
TMP_KEY_IGNORE = Symbol.for("node-ignore");
|
|
39
|
+
}
|
|
40
|
+
var KEY_IGNORE = TMP_KEY_IGNORE;
|
|
41
|
+
var define = (object, key, value) => Object.defineProperty(object, key, { value });
|
|
42
|
+
var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g;
|
|
43
|
+
var RETURN_FALSE = () => false;
|
|
44
|
+
var sanitizeRange = (range) => range.replace(REGEX_REGEXP_RANGE, (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match : EMPTY);
|
|
45
|
+
var cleanRangeBackSlash = (slashes) => {
|
|
46
|
+
const { length } = slashes;
|
|
47
|
+
return slashes.slice(0, length - length % 2);
|
|
48
|
+
};
|
|
49
|
+
var REPLACERS = [
|
|
50
|
+
[
|
|
51
|
+
/^\uFEFF/,
|
|
52
|
+
() => EMPTY
|
|
53
|
+
],
|
|
54
|
+
[
|
|
55
|
+
/((?:\\\\)*?)(\\?\s+)$/,
|
|
56
|
+
(_, m1, m2) => m1 + (m2.indexOf("\\") === 0 ? SPACE : EMPTY)
|
|
57
|
+
],
|
|
58
|
+
[
|
|
59
|
+
/(\\+?)\s/g,
|
|
60
|
+
(_, m1) => {
|
|
61
|
+
const { length } = m1;
|
|
62
|
+
return m1.slice(0, length - length % 2) + SPACE;
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
[
|
|
66
|
+
/[\\$.|*+(){^]/g,
|
|
67
|
+
(match) => `\\${match}`
|
|
68
|
+
],
|
|
69
|
+
[
|
|
70
|
+
/(?!\\)\?/g,
|
|
71
|
+
() => "[^/]"
|
|
72
|
+
],
|
|
73
|
+
[
|
|
74
|
+
/^\//,
|
|
75
|
+
() => "^"
|
|
76
|
+
],
|
|
77
|
+
[
|
|
78
|
+
/\//g,
|
|
79
|
+
() => "\\/"
|
|
80
|
+
],
|
|
81
|
+
[
|
|
82
|
+
/^\^*\\\*\\\*\\\//,
|
|
83
|
+
() => "^(?:.*\\/)?"
|
|
84
|
+
],
|
|
85
|
+
[
|
|
86
|
+
/^(?=[^^])/,
|
|
87
|
+
function startingReplacer() {
|
|
88
|
+
return !/\/(?!$)/.test(this) ? "(?:^|\\/)" : "^";
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
[
|
|
92
|
+
/\\\/\\\*\\\*(?=\\\/|$)/g,
|
|
93
|
+
(_, index, str) => index + 6 < str.length ? "(?:\\/[^\\/]+)*" : "\\/.+"
|
|
94
|
+
],
|
|
95
|
+
[
|
|
96
|
+
/(^|[^\\]+)(\\\*)+(?=.+)/g,
|
|
97
|
+
(_, p1, p2) => {
|
|
98
|
+
const unescaped = p2.replace(/\\\*/g, "[^\\/]*");
|
|
99
|
+
return p1 + unescaped;
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
[
|
|
103
|
+
/\\\\\\(?=[$.|*+(){^])/g,
|
|
104
|
+
() => ESCAPE
|
|
105
|
+
],
|
|
106
|
+
[
|
|
107
|
+
/\\\\/g,
|
|
108
|
+
() => ESCAPE
|
|
109
|
+
],
|
|
110
|
+
[
|
|
111
|
+
/(\\)?\[([^\]/]*?)(\\*)($|\])/g,
|
|
112
|
+
(match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === "]" ? endEscape.length % 2 === 0 ? `[${sanitizeRange(range)}${endEscape}]` : "[]" : "[]"
|
|
113
|
+
],
|
|
114
|
+
[
|
|
115
|
+
/(?:[^*])$/,
|
|
116
|
+
(match) => /\/$/.test(match) ? `${match}$` : `${match}(?=$|\\/$)`
|
|
117
|
+
],
|
|
118
|
+
[
|
|
119
|
+
/(\^|\\\/)?\\\*$/,
|
|
120
|
+
(_, p1) => {
|
|
121
|
+
const prefix = p1 ? `${p1}[^/]+` : "[^/]*";
|
|
122
|
+
return `${prefix}(?=$|\\/$)`;
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
];
|
|
126
|
+
var regexCache = Object.create(null);
|
|
127
|
+
var makeRegex = (pattern, ignoreCase) => {
|
|
128
|
+
let source = regexCache[pattern];
|
|
129
|
+
if (!source) {
|
|
130
|
+
source = REPLACERS.reduce((prev, [matcher, replacer]) => prev.replace(matcher, replacer.bind(pattern)), pattern);
|
|
131
|
+
regexCache[pattern] = source;
|
|
132
|
+
}
|
|
133
|
+
return ignoreCase ? new RegExp(source, "i") : new RegExp(source);
|
|
134
|
+
};
|
|
135
|
+
var isString = (subject) => typeof subject === "string";
|
|
136
|
+
var checkPattern = (pattern) => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) && pattern.indexOf("#") !== 0;
|
|
137
|
+
var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF);
|
|
138
|
+
|
|
139
|
+
class IgnoreRule {
|
|
140
|
+
constructor(origin, pattern, negative, regex) {
|
|
141
|
+
this.origin = origin;
|
|
142
|
+
this.pattern = pattern;
|
|
143
|
+
this.negative = negative;
|
|
144
|
+
this.regex = regex;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
var createRule = (pattern, ignoreCase) => {
|
|
148
|
+
const origin = pattern;
|
|
149
|
+
let negative = false;
|
|
150
|
+
if (pattern.indexOf("!") === 0) {
|
|
151
|
+
negative = true;
|
|
152
|
+
pattern = pattern.substr(1);
|
|
153
|
+
}
|
|
154
|
+
pattern = pattern.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, "!").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, "#");
|
|
155
|
+
const regex = makeRegex(pattern, ignoreCase);
|
|
156
|
+
return new IgnoreRule(origin, pattern, negative, regex);
|
|
157
|
+
};
|
|
158
|
+
var throwError = (message, Ctor) => {
|
|
159
|
+
throw new Ctor(message);
|
|
160
|
+
};
|
|
161
|
+
var checkPath = (path, originalPath, doThrow) => {
|
|
162
|
+
if (!isString(path)) {
|
|
163
|
+
return doThrow(`path must be a string, but got \`${originalPath}\``, TypeError);
|
|
164
|
+
}
|
|
165
|
+
if (!path) {
|
|
166
|
+
return doThrow(`path must not be empty`, TypeError);
|
|
167
|
+
}
|
|
168
|
+
if (checkPath.isNotRelative(path)) {
|
|
169
|
+
const r = "`path.relative()`d";
|
|
170
|
+
return doThrow(`path should be a ${r} string, but got "${originalPath}"`, RangeError);
|
|
171
|
+
}
|
|
172
|
+
return true;
|
|
173
|
+
};
|
|
174
|
+
var isNotRelative = (path) => REGEX_TEST_INVALID_PATH.test(path);
|
|
175
|
+
checkPath.isNotRelative = isNotRelative;
|
|
176
|
+
checkPath.convert = (p) => p;
|
|
177
|
+
|
|
178
|
+
class Ignore {
|
|
179
|
+
constructor({
|
|
180
|
+
ignorecase = true,
|
|
181
|
+
ignoreCase = ignorecase,
|
|
182
|
+
allowRelativePaths = false
|
|
183
|
+
} = {}) {
|
|
184
|
+
define(this, KEY_IGNORE, true);
|
|
185
|
+
this._rules = [];
|
|
186
|
+
this._ignoreCase = ignoreCase;
|
|
187
|
+
this._allowRelativePaths = allowRelativePaths;
|
|
188
|
+
this._initCache();
|
|
189
|
+
}
|
|
190
|
+
_initCache() {
|
|
191
|
+
this._ignoreCache = Object.create(null);
|
|
192
|
+
this._testCache = Object.create(null);
|
|
193
|
+
}
|
|
194
|
+
_addPattern(pattern) {
|
|
195
|
+
if (pattern && pattern[KEY_IGNORE]) {
|
|
196
|
+
this._rules = this._rules.concat(pattern._rules);
|
|
197
|
+
this._added = true;
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
if (checkPattern(pattern)) {
|
|
201
|
+
const rule = createRule(pattern, this._ignoreCase);
|
|
202
|
+
this._added = true;
|
|
203
|
+
this._rules.push(rule);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
add(pattern) {
|
|
207
|
+
this._added = false;
|
|
208
|
+
makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._addPattern, this);
|
|
209
|
+
if (this._added) {
|
|
210
|
+
this._initCache();
|
|
211
|
+
}
|
|
212
|
+
return this;
|
|
213
|
+
}
|
|
214
|
+
addPattern(pattern) {
|
|
215
|
+
return this.add(pattern);
|
|
216
|
+
}
|
|
217
|
+
_testOne(path, checkUnignored) {
|
|
218
|
+
let ignored = false;
|
|
219
|
+
let unignored = false;
|
|
220
|
+
this._rules.forEach((rule) => {
|
|
221
|
+
const { negative } = rule;
|
|
222
|
+
if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const matched = rule.regex.test(path);
|
|
226
|
+
if (matched) {
|
|
227
|
+
ignored = !negative;
|
|
228
|
+
unignored = negative;
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
return {
|
|
232
|
+
ignored,
|
|
233
|
+
unignored
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
_test(originalPath, cache, checkUnignored, slices) {
|
|
237
|
+
const path = originalPath && checkPath.convert(originalPath);
|
|
238
|
+
checkPath(path, originalPath, this._allowRelativePaths ? RETURN_FALSE : throwError);
|
|
239
|
+
return this._t(path, cache, checkUnignored, slices);
|
|
240
|
+
}
|
|
241
|
+
_t(path, cache, checkUnignored, slices) {
|
|
242
|
+
if (path in cache) {
|
|
243
|
+
return cache[path];
|
|
244
|
+
}
|
|
245
|
+
if (!slices) {
|
|
246
|
+
slices = path.split(SLASH);
|
|
247
|
+
}
|
|
248
|
+
slices.pop();
|
|
249
|
+
if (!slices.length) {
|
|
250
|
+
return cache[path] = this._testOne(path, checkUnignored);
|
|
251
|
+
}
|
|
252
|
+
const parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices);
|
|
253
|
+
return cache[path] = parent.ignored ? parent : this._testOne(path, checkUnignored);
|
|
254
|
+
}
|
|
255
|
+
ignores(path) {
|
|
256
|
+
return this._test(path, this._ignoreCache, false).ignored;
|
|
257
|
+
}
|
|
258
|
+
createFilter() {
|
|
259
|
+
return (path) => !this.ignores(path);
|
|
260
|
+
}
|
|
261
|
+
filter(paths) {
|
|
262
|
+
return makeArray(paths).filter(this.createFilter());
|
|
263
|
+
}
|
|
264
|
+
test(path) {
|
|
265
|
+
return this._test(path, this._testCache, true);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
var factory = (options) => new Ignore(options);
|
|
269
|
+
var isPathValid = (path) => checkPath(path && checkPath.convert(path), path, RETURN_FALSE);
|
|
270
|
+
factory.isPathValid = isPathValid;
|
|
271
|
+
factory.default = factory;
|
|
272
|
+
module.exports = factory;
|
|
273
|
+
if (typeof process !== "undefined" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === "win32")) {
|
|
274
|
+
const makePosix = (str) => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, "/");
|
|
275
|
+
checkPath.convert = makePosix;
|
|
276
|
+
const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i;
|
|
277
|
+
checkPath.isNotRelative = (path) => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) || isNotRelative(path);
|
|
278
|
+
}
|
|
279
|
+
});
|
|
16
280
|
|
|
17
281
|
// ../solution-sdk/generated/src/runtime.ts
|
|
18
282
|
var BASE_PATH = "https://alpha.uipath.com/uipattycyrhx/abizon_1/automationsolutions_".replace(/\/+$/, "");
|
|
@@ -1039,7 +1303,7 @@ var package_default = {
|
|
|
1039
1303
|
name: "@uipath/solution-sdk",
|
|
1040
1304
|
author: "UiPath",
|
|
1041
1305
|
license: "SEE LICENSE IN LICENSE.txt",
|
|
1042
|
-
version: "1.204.0-preview.
|
|
1306
|
+
version: "1.204.0-preview.254",
|
|
1043
1307
|
repository: {
|
|
1044
1308
|
type: "git",
|
|
1045
1309
|
url: "https://github.com/UiPath/cli.git",
|
|
@@ -1095,6 +1359,7 @@ var package_default = {
|
|
|
1095
1359
|
"@uipath/studioweb-sdk": "workspace:*",
|
|
1096
1360
|
"@types/node": "^25.5.2",
|
|
1097
1361
|
fflate: "^0.8.2",
|
|
1362
|
+
ignore: "^5.3.2",
|
|
1098
1363
|
typescript: "^7.0.2"
|
|
1099
1364
|
}
|
|
1100
1365
|
};
|
|
@@ -2523,6 +2788,7 @@ function assertStudioWebCompatibleProjects(projects) {
|
|
|
2523
2788
|
}
|
|
2524
2789
|
|
|
2525
2790
|
// ../solution-sdk/src/zip-utils.ts
|
|
2791
|
+
var import_ignore = __toESM(require_ignore(), 1);
|
|
2526
2792
|
var DEFAULT_EXCLUDED_DIR_NAMES = new Set([
|
|
2527
2793
|
".venv",
|
|
2528
2794
|
"node_modules",
|
|
@@ -2544,18 +2810,31 @@ function isDefaultExcludedFileName(name) {
|
|
|
2544
2810
|
}
|
|
2545
2811
|
var UIPIGNORE_FILENAME = ".uipignore";
|
|
2546
2812
|
function parseUipignore(body) {
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2813
|
+
return body.split(/\r?\n/).filter((line) => line.trim() !== "" && !line.startsWith("#"));
|
|
2814
|
+
}
|
|
2815
|
+
function createUipignoreRules(baseDir, patterns) {
|
|
2816
|
+
const matcher = import_ignore.default().add([...patterns]);
|
|
2817
|
+
return {
|
|
2818
|
+
baseDir,
|
|
2819
|
+
patterns,
|
|
2820
|
+
ignores: (relativePath) => matcher.ignores(relativePath)
|
|
2821
|
+
};
|
|
2822
|
+
}
|
|
2823
|
+
var UNMATCHABLE_RELATIVE_PATH = /^\.+$|^\.*\//;
|
|
2824
|
+
function isIgnoredByRules(fs, rules, fullPath, isDirectory) {
|
|
2825
|
+
if (!rules) {
|
|
2826
|
+
return false;
|
|
2827
|
+
}
|
|
2828
|
+
for (const rule of rules) {
|
|
2829
|
+
const rel = fs.path.relative(rule.baseDir, fullPath).replace(/\\/g, "/");
|
|
2830
|
+
if (!rel || UNMATCHABLE_RELATIVE_PATH.test(rel) || fs.path.isAbsolute(rel)) {
|
|
2551
2831
|
continue;
|
|
2552
2832
|
}
|
|
2553
|
-
if (
|
|
2554
|
-
|
|
2833
|
+
if (rule.ignores(isDirectory ? `${rel}/` : rel)) {
|
|
2834
|
+
return true;
|
|
2555
2835
|
}
|
|
2556
|
-
names.add(line);
|
|
2557
2836
|
}
|
|
2558
|
-
return
|
|
2837
|
+
return false;
|
|
2559
2838
|
}
|
|
2560
2839
|
async function collectTree(fs, dir, options = {}) {
|
|
2561
2840
|
const files = [];
|
|
@@ -2578,12 +2857,12 @@ async function collectTree(fs, dir, options = {}) {
|
|
|
2578
2857
|
const fullPath = fs.path.join(current, entryName);
|
|
2579
2858
|
const entryStat = await fs.stat(fullPath);
|
|
2580
2859
|
if (entryStat?.isDirectory()) {
|
|
2581
|
-
if (excluded.has(entryName)) {
|
|
2860
|
+
if (excluded.has(entryName) || isIgnoredByRules(fs, options.ignoreRules, fullPath, true)) {
|
|
2582
2861
|
continue;
|
|
2583
2862
|
}
|
|
2584
2863
|
await walk(fullPath, false);
|
|
2585
2864
|
} else if (entryStat?.isFile()) {
|
|
2586
|
-
if (isDefaultExcludedFileName(entryName)) {
|
|
2865
|
+
if (isDefaultExcludedFileName(entryName) || isIgnoredByRules(fs, options.ignoreRules, fullPath, false)) {
|
|
2587
2866
|
continue;
|
|
2588
2867
|
}
|
|
2589
2868
|
files.push(fullPath);
|
|
@@ -2683,38 +2962,43 @@ function countCentralDirectoryEntries(view, cdOffset, cdSize) {
|
|
|
2683
2962
|
}
|
|
2684
2963
|
|
|
2685
2964
|
// ../solution-sdk/src/bundle-service.ts
|
|
2965
|
+
class UipignoreExcludesProjectError extends Error {
|
|
2966
|
+
projectManifestPath;
|
|
2967
|
+
constructor(projectManifestPath) {
|
|
2968
|
+
super(`${UIPIGNORE_FILENAME} excludes ${projectManifestPath}, which the solution references. A project listed in the .uipx cannot be left out of the bundle.`);
|
|
2969
|
+
this.projectManifestPath = projectManifestPath;
|
|
2970
|
+
this.name = "UipignoreExcludesProjectError";
|
|
2971
|
+
}
|
|
2972
|
+
}
|
|
2686
2973
|
async function readUipignore(fs, dir) {
|
|
2687
2974
|
const ignorePath = fs.path.join(dir, UIPIGNORE_FILENAME);
|
|
2688
2975
|
if (!await fs.exists(ignorePath)) {
|
|
2689
|
-
return
|
|
2976
|
+
return;
|
|
2690
2977
|
}
|
|
2691
2978
|
try {
|
|
2692
2979
|
const body = await fs.readFile(ignorePath, "utf-8");
|
|
2693
|
-
|
|
2694
|
-
|
|
2980
|
+
const patterns = body ? parseUipignore(body) : [];
|
|
2981
|
+
if (patterns.length === 0) {
|
|
2982
|
+
return;
|
|
2695
2983
|
}
|
|
2696
|
-
return
|
|
2984
|
+
return createUipignoreRules(dir, patterns);
|
|
2697
2985
|
} catch (err) {
|
|
2698
2986
|
logger.warn(`Could not read ${UIPIGNORE_FILENAME}; ignoring it: ${String(err)}`);
|
|
2699
|
-
return
|
|
2987
|
+
return;
|
|
2700
2988
|
}
|
|
2701
2989
|
}
|
|
2702
|
-
async function mergeProjectUipignore(fs, projectPath, projectLabel,
|
|
2703
|
-
const
|
|
2704
|
-
if (
|
|
2705
|
-
return
|
|
2990
|
+
async function mergeProjectUipignore(fs, projectPath, projectLabel, solutionRules) {
|
|
2991
|
+
const projectRules = await readUipignore(fs, projectPath);
|
|
2992
|
+
if (!projectRules) {
|
|
2993
|
+
return solutionRules;
|
|
2706
2994
|
}
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
merged.add(name);
|
|
2710
|
-
}
|
|
2711
|
-
logger.info(`[${projectLabel}] Applying ${projectExtra.size} extra exclude(s) from project ${UIPIGNORE_FILENAME}: ${[...projectExtra].join(", ")}`);
|
|
2712
|
-
return merged;
|
|
2995
|
+
logger.info(`[${projectLabel}] Applying ${projectRules.patterns.length} extra exclude(s) from project ${UIPIGNORE_FILENAME}: ${projectRules.patterns.join(", ")}`);
|
|
2996
|
+
return [...solutionRules, projectRules];
|
|
2713
2997
|
}
|
|
2714
2998
|
var toForwardSlash = (p) => p.replace(/\\/g, "/");
|
|
2715
|
-
async function mirrorTree(fs, srcDir, relativeBase, destBaseDir,
|
|
2999
|
+
async function mirrorTree(fs, srcDir, relativeBase, destBaseDir, ignoreRules) {
|
|
2716
3000
|
const { files, emptyDirs } = await collectTree(fs, srcDir, {
|
|
2717
|
-
|
|
3001
|
+
ignoreRules
|
|
2718
3002
|
});
|
|
2719
3003
|
if (files.length === 0 && emptyDirs.length === 0) {
|
|
2720
3004
|
const rootRel = fs.path.relative(relativeBase, srcDir);
|
|
@@ -2741,14 +3025,8 @@ async function mirrorTree(fs, srcDir, relativeBase, destBaseDir, additionalExclu
|
|
|
2741
3025
|
await fs.mkdir(fs.path.join(destBaseDir, relPath));
|
|
2742
3026
|
}
|
|
2743
3027
|
}
|
|
2744
|
-
async function flattenProjectDir(fs, srcProjectDir, destProjectDir,
|
|
3028
|
+
async function flattenProjectDir(fs, srcProjectDir, destProjectDir, ignoreRules) {
|
|
2745
3029
|
await fs.mkdir(destProjectDir);
|
|
2746
|
-
const topLevelExclude = new Set(DEFAULT_EXCLUDED_DIR_NAMES);
|
|
2747
|
-
if (additionalExcludeDirs) {
|
|
2748
|
-
for (const name of additionalExcludeDirs) {
|
|
2749
|
-
topLevelExclude.add(name);
|
|
2750
|
-
}
|
|
2751
|
-
}
|
|
2752
3030
|
const entries = await fs.readdir(srcProjectDir);
|
|
2753
3031
|
for (const entryName of entries) {
|
|
2754
3032
|
const srcPath = fs.path.join(srcProjectDir, entryName);
|
|
@@ -2757,7 +3035,7 @@ async function flattenProjectDir(fs, srcProjectDir, destProjectDir, additionalEx
|
|
|
2757
3035
|
continue;
|
|
2758
3036
|
}
|
|
2759
3037
|
if (entryStat.isFile()) {
|
|
2760
|
-
if (isDefaultExcludedFileName(entryName)) {
|
|
3038
|
+
if (isDefaultExcludedFileName(entryName) || isIgnoredByRules(fs, ignoreRules, srcPath, false)) {
|
|
2761
3039
|
continue;
|
|
2762
3040
|
}
|
|
2763
3041
|
const data = await fs.readFile(srcPath);
|
|
@@ -2765,13 +3043,13 @@ async function flattenProjectDir(fs, srcProjectDir, destProjectDir, additionalEx
|
|
|
2765
3043
|
await fs.writeFile(fs.path.join(destProjectDir, entryName), data);
|
|
2766
3044
|
}
|
|
2767
3045
|
} else if (entryStat.isDirectory()) {
|
|
2768
|
-
if (
|
|
3046
|
+
if (DEFAULT_EXCLUDED_DIR_NAMES.has(entryName) || isIgnoredByRules(fs, ignoreRules, srcPath, true)) {
|
|
2769
3047
|
continue;
|
|
2770
3048
|
}
|
|
2771
3049
|
if (entryName === "content" || entryName === "flow_files") {
|
|
2772
|
-
await mirrorTree(fs, srcPath, srcPath, destProjectDir,
|
|
3050
|
+
await mirrorTree(fs, srcPath, srcPath, destProjectDir, ignoreRules);
|
|
2773
3051
|
} else {
|
|
2774
|
-
await mirrorTree(fs, srcPath, srcProjectDir, destProjectDir,
|
|
3052
|
+
await mirrorTree(fs, srcPath, srcProjectDir, destProjectDir, ignoreRules);
|
|
2775
3053
|
}
|
|
2776
3054
|
}
|
|
2777
3055
|
}
|
|
@@ -2786,14 +3064,12 @@ async function bundleSolution(fs, solutionDir, outputDir, outputName) {
|
|
|
2786
3064
|
throw new Error(`Not a directory: ${resolvedPath}. Provide the solution directory containing a .uipx file.`);
|
|
2787
3065
|
}
|
|
2788
3066
|
const { uipx, uipxFileName } = await readUipxFile(fs, resolvedPath);
|
|
2789
|
-
const
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
const effectiveExclude = new Set(DEFAULT_EXCLUDED_DIR_NAMES);
|
|
2794
|
-
for (const name of additionalExcludeDirs) {
|
|
2795
|
-
effectiveExclude.add(name);
|
|
3067
|
+
const solutionUipignore = await readUipignore(fs, resolvedPath);
|
|
3068
|
+
const solutionRules = solutionUipignore ? [solutionUipignore] : [];
|
|
3069
|
+
if (solutionUipignore) {
|
|
3070
|
+
logger.info(`Applying ${solutionUipignore.patterns.length} extra exclude(s) from ${UIPIGNORE_FILENAME}: ${solutionUipignore.patterns.join(", ")}`);
|
|
2796
3071
|
}
|
|
3072
|
+
const isTopLevelTreeExcluded = (treePath, name) => DEFAULT_EXCLUDED_DIR_NAMES.has(name) || isIgnoredByRules(fs, solutionRules, treePath, true);
|
|
2797
3073
|
for (const project of uipx.Projects) {
|
|
2798
3074
|
project.ProjectRelativePath = toForwardSlash(project.ProjectRelativePath);
|
|
2799
3075
|
}
|
|
@@ -2818,16 +3094,20 @@ async function bundleSolution(fs, solutionDir, outputDir, outputName) {
|
|
|
2818
3094
|
if (!projectStat) {
|
|
2819
3095
|
throw new Error(`Project directory not found: ${srcProjectPath}`);
|
|
2820
3096
|
}
|
|
2821
|
-
const
|
|
2822
|
-
|
|
3097
|
+
const projectRules = await mergeProjectUipignore(fs, srcProjectPath, projectDir, solutionRules);
|
|
3098
|
+
const manifestPath = fs.path.join(resolvedPath, project.ProjectRelativePath);
|
|
3099
|
+
if (isIgnoredByRules(fs, projectRules, manifestPath, false)) {
|
|
3100
|
+
throw new UipignoreExcludesProjectError(project.ProjectRelativePath);
|
|
3101
|
+
}
|
|
3102
|
+
await flattenProjectDir(fs, srcProjectPath, fs.path.join(stagingDir, projectDir), projectRules);
|
|
2823
3103
|
}
|
|
2824
3104
|
const resourcesPath = fs.path.join(resolvedPath, "resources");
|
|
2825
|
-
if (!
|
|
2826
|
-
await mirrorTree(fs, resourcesPath, resolvedPath, stagingDir,
|
|
3105
|
+
if (!isTopLevelTreeExcluded(resourcesPath, "resources") && await fs.exists(resourcesPath)) {
|
|
3106
|
+
await mirrorTree(fs, resourcesPath, resolvedPath, stagingDir, solutionRules);
|
|
2827
3107
|
}
|
|
2828
3108
|
const userProfilePath = fs.path.join(resolvedPath, "userProfile");
|
|
2829
|
-
if (!
|
|
2830
|
-
await mirrorTree(fs, userProfilePath, resolvedPath, stagingDir,
|
|
3109
|
+
if (!isTopLevelTreeExcluded(userProfilePath, "userProfile") && await fs.exists(userProfilePath)) {
|
|
3110
|
+
await mirrorTree(fs, userProfilePath, resolvedPath, stagingDir, solutionRules);
|
|
2831
3111
|
}
|
|
2832
3112
|
const resolvedOutputDir = fs.path.resolve(outputDir);
|
|
2833
3113
|
if (!await fs.exists(resolvedOutputDir)) {
|
|
@@ -3172,6 +3452,6 @@ async function overwriteSolution(config, organizationName, fileBuffer, fileName,
|
|
|
3172
3452
|
}
|
|
3173
3453
|
return await response.json();
|
|
3174
3454
|
}
|
|
3175
|
-
export { Configuration, getAvailablePublishLocationsV2, DeploymentActivationStatus, WorkflowAction, DeploymentOperationStatus, DeploymentSearchItemDto2FromJSON, SolutionDeploymentAction, DeploymentsApi, SearchApi, StudioWebIncompatibleProjectError, bundleSolution, isDebugProvisioningTerminal, isDebugProvisioningSucceeded, getProjectDebugStatus, getStudioWebSolutionProjects, listStudioWebSolutions, isSolutionUploadHttpError, buildSolutionUploadFailureOutput, solutionExistsOnStudioWeb, importSolution, overwriteSolution };
|
|
3455
|
+
export { Configuration, getAvailablePublishLocationsV2, DeploymentActivationStatus, WorkflowAction, DeploymentOperationStatus, DeploymentSearchItemDto2FromJSON, SolutionDeploymentAction, DeploymentsApi, SearchApi, StudioWebIncompatibleProjectError, UipignoreExcludesProjectError, bundleSolution, isDebugProvisioningTerminal, isDebugProvisioningSucceeded, getProjectDebugStatus, getStudioWebSolutionProjects, listStudioWebSolutions, isSolutionUploadHttpError, buildSolutionUploadFailureOutput, solutionExistsOnStudioWeb, importSolution, overwriteSolution };
|
|
3176
3456
|
|
|
3177
|
-
//# debugId=
|
|
3457
|
+
//# debugId=0C978AB9364EE07164756E2164756E21
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
explainRefusal,
|
|
5
5
|
needsPendingResources,
|
|
6
6
|
readPendingResourcesAsync
|
|
7
|
-
} from "./packager-tool-
|
|
7
|
+
} from "./packager-tool-13dsb9e6.js";
|
|
8
8
|
import {
|
|
9
9
|
INCOMPLETE_SWEEP_ADVICE,
|
|
10
10
|
findDeploymentAcrossFeeds,
|
|
11
11
|
isNameOrFeedRefusal,
|
|
12
12
|
reportIncompleteSweepAsync,
|
|
13
13
|
retryAdvice
|
|
14
|
-
} from "./packager-tool-
|
|
14
|
+
} from "./packager-tool-erp9bv22.js";
|
|
15
15
|
import {
|
|
16
16
|
DeploymentSearchNeedsUserSessionError,
|
|
17
17
|
MAX_LISTED_DEPLOYMENTS,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
newestDeploymentRow,
|
|
31
31
|
resolveInstalledFolder,
|
|
32
32
|
searchDeploymentsPage
|
|
33
|
-
} from "./packager-tool-
|
|
33
|
+
} from "./packager-tool-v8rseyfk.js";
|
|
34
34
|
import {
|
|
35
35
|
Configuration as Configuration2,
|
|
36
36
|
DeploymentOperation,
|
|
@@ -44,14 +44,14 @@ import {
|
|
|
44
44
|
folderKeyInitOverride,
|
|
45
45
|
resolveFeedScope,
|
|
46
46
|
resolvePersonalWorkspace
|
|
47
|
-
} from "./packager-tool-
|
|
47
|
+
} from "./packager-tool-d9ethrmn.js";
|
|
48
48
|
import {
|
|
49
49
|
Configuration,
|
|
50
50
|
DeploymentsApi,
|
|
51
51
|
SearchApi,
|
|
52
52
|
SolutionDeploymentAction,
|
|
53
53
|
WorkflowAction
|
|
54
|
-
} from "./packager-tool-
|
|
54
|
+
} from "./packager-tool-9z1yxjme.js";
|
|
55
55
|
import {
|
|
56
56
|
classifyFeedSession,
|
|
57
57
|
feedReadRefusalForApplication,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
findDeploymentByName,
|
|
3
3
|
findLiveDeploymentByName
|
|
4
|
-
} from "./packager-tool-
|
|
4
|
+
} from "./packager-tool-v8rseyfk.js";
|
|
5
5
|
import {
|
|
6
6
|
folderKeyInitOverride,
|
|
7
7
|
listSelectablePublishLocations,
|
|
8
8
|
resolvePersonalWorkspace
|
|
9
|
-
} from "./packager-tool-
|
|
9
|
+
} from "./packager-tool-d9ethrmn.js";
|
|
10
10
|
import {
|
|
11
11
|
catchError,
|
|
12
12
|
extractErrorDetails
|
package/dist/publish.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
publishSolutionAsync
|
|
3
|
-
} from "./packager-tool-
|
|
3
|
+
} from "./packager-tool-wjk91v0q.js";
|
|
4
4
|
import"./packager-tool-7gr2nphb.js";
|
|
5
|
-
import"./packager-tool-
|
|
6
|
-
import"./packager-tool-
|
|
5
|
+
import"./packager-tool-d9ethrmn.js";
|
|
6
|
+
import"./packager-tool-9z1yxjme.js";
|
|
7
7
|
import"./packager-tool-bqre28m1.js";
|
|
8
8
|
import"./packager-tool-f5gq77m5.js";
|
|
9
9
|
import"./packager-tool-zdfn32bc.js";
|
package/dist/templates/AGENTS.md
CHANGED
|
@@ -317,6 +317,8 @@ uip solution delete <solution-id> --yes # remove a solution from Studio Web (
|
|
|
317
317
|
|
|
318
318
|
`Data.Action` is `Imported` or `Overwritten`, so you can tell which ran. `--force` skips the existence check and overwrites directly; it is not normally needed, it fails rather than importing if that solution is gone, and it has no effect when no `SolutionId` is bundled (the upload imports as new). To upload a copy as an unrelated cloud solution instead of updating, scaffold a fresh solution with `uip solution init`, or replace the `SolutionId` in the local `.uipx` with a fresh GUID and re-run upload (removing the field entirely fails `.uipx` validation).
|
|
319
319
|
|
|
320
|
+
The bundle `upload` sends leaves out `.venv`, `node_modules`, `__pycache__`, `.git`, `.local` and `.flow-sdk` folders and `.env` / `.env.*` files on its own. To leave more out, add a `.uipignore` file at the solution root (or inside a project, where its patterns apply to that project only) using `.gitignore` syntax — `dist/`, `*.log`, `!keep.log`, `MyAgent/generated/`; a line-leading `#` is a comment. A pattern that would drop a project the `.uipx` lists is refused — remove the project with `uip solution projects remove` instead. `uip codedapp push` honors the same file (its older `.uipathignore` is deprecated — use `.uipignore`). `solution pack` does not read it.
|
|
321
|
+
|
|
320
322
|
If Studio Web refuses the upload with 401 or 403, do **not** re-run `uip login` — the CLI checks the session and its token expiry before it calls, so the token was valid and re-authenticating produces the same one. The failure is about what the acting identity may do in Studio Web (for a CI pipeline: the external application's `StudioWebS2S` grants) or about the tenant the bundled `SolutionId` belongs to. The envelope's `Instructions` name both, and an application 401 is reported as `ErrorCode: permission_denied` rather than `authentication_required`.
|
|
321
323
|
|
|
322
324
|
`download` writes the `.uis` archive and nothing else — extraction is opt-in. Pass `--extract` to also unzip it into a sibling directory named after the archive; that directory is a working solution tree, with the `.uipx` manifest at its root. `--extract` also drops `AGENTS.md` and `CLAUDE.md` there so an agent picking the solution up has the same briefing `uip solution init` writes. It only fills gaps: a file the archive already carried is left alone, and the paths actually written come back in `Data.BriefingFiles`. Without `--extract` you get the zip only, and no briefing files — there is no solution directory to put them in.
|
package/dist/tool.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
metadata,
|
|
3
3
|
registerCommands
|
|
4
|
-
} from "./packager-tool-
|
|
4
|
+
} from "./packager-tool-97w8aw8y.js";
|
|
5
5
|
import"./packager-tool-v8bkkqdb.js";
|
|
6
|
-
import"./packager-tool-
|
|
7
|
-
import"./packager-tool-
|
|
8
|
-
import"./packager-tool-
|
|
9
|
-
import"./packager-tool-
|
|
10
|
-
import"./packager-tool-
|
|
6
|
+
import"./packager-tool-5v92rtp2.js";
|
|
7
|
+
import"./packager-tool-dapys0dd.js";
|
|
8
|
+
import"./packager-tool-13dsb9e6.js";
|
|
9
|
+
import"./packager-tool-erp9bv22.js";
|
|
10
|
+
import"./packager-tool-v8rseyfk.js";
|
|
11
11
|
import"./packager-tool-px1j9kre.js";
|
|
12
|
-
import"./packager-tool-
|
|
12
|
+
import"./packager-tool-8sx1w3h1.js";
|
|
13
13
|
import"./packager-tool-gab9y5ct.js";
|
|
14
14
|
import"./packager-tool-1rzssy0x.js";
|
|
15
15
|
import"./packager-tool-e2rtr49j.js";
|
|
16
16
|
import"./packager-tool-zns6n8zp.js";
|
|
17
|
-
import"./packager-tool-
|
|
17
|
+
import"./packager-tool-wjk91v0q.js";
|
|
18
18
|
import"./packager-tool-7gr2nphb.js";
|
|
19
|
-
import"./packager-tool-
|
|
20
|
-
import"./packager-tool-
|
|
19
|
+
import"./packager-tool-d9ethrmn.js";
|
|
20
|
+
import"./packager-tool-9z1yxjme.js";
|
|
21
21
|
import"./packager-tool-bqre28m1.js";
|
|
22
22
|
import"./packager-tool-yrz4mwfn.js";
|
|
23
23
|
import"./packager-tool-gdtpsdn7.js";
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@uipath/solution-tool",
|
|
3
3
|
"author": "UiPath",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
|
-
"version": "1.204.0-preview.
|
|
5
|
+
"version": "1.204.0-preview.254",
|
|
6
6
|
"description": "Create, pack, publish, and deploy UiPath Automation Solutions.",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"dist"
|
|
49
49
|
],
|
|
50
50
|
"private": false,
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "3ee79cdec05b36231a8da9e8de6bf0043585526a"
|
|
52
52
|
}
|