@uipath/solution-sdk 1.202.0 → 1.203.0-preview.160
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/THIRD-PARTY-NOTICES.md +12 -1
- package/dist/embedded-file-reader-xxqe8vs8.js +114 -0
- package/dist/first-party-service-sd8yaf73.js +27 -0
- package/dist/index-1de529jm.js +39 -0
- package/dist/index-4zqv4bn2.js +6922 -0
- package/dist/index-53w8skv5.js +262 -0
- package/dist/index-dqa169gp.js +25 -0
- package/dist/index-g0hcxnae.js +237 -0
- package/dist/index-gdtpsdn7.js +342 -0
- package/dist/index-sby22td6.js +634 -0
- package/dist/index-y8tgscfm.js +1381 -0
- package/dist/index.js +3660 -15829
- package/dist/jmespath-231m3hyn.js +1485 -0
- package/dist/js-yaml-88tdqrtd.js +3153 -0
- package/dist/resources/index.js +14311 -27794
- package/dist/solution-auth.js +6 -2320
- package/dist/src/index.d.ts +1 -1
- package/dist/src/resources/commands/project-utils.d.ts +5 -0
- package/dist/src/resources/index.d.ts +3 -0
- package/dist/src/resources/providers/artefact-pair-binding-provider.d.ts +21 -0
- package/dist/src/resources/providers/file-storage-provider.d.ts +2 -1
- package/dist/src/resources/providers/resource-builder-init.d.ts +12 -12
- package/dist/src/resources/providers/solution-access-provider.d.ts +2 -1
- package/dist/src/resources/services/entry-point-spec-enhancer.d.ts +21 -2
- package/dist/src/resources/services/local-resource-matcher.d.ts +1 -1
- package/dist/src/resources/services/project-template-types.d.ts +35 -0
- package/dist/src/resources/services/resource-casing.d.ts +24 -0
- package/dist/src/resources/services/resource-refresh-service.d.ts +7 -0
- package/dist/src/resources/services/resource-remote-sync.d.ts +67 -0
- package/dist/src/resources/services/solution-manifest.d.ts +20 -6
- package/dist/src/resources/services/sync-resources-from-bindings.d.ts +4 -3
- package/package.json +3 -2
package/dist/src/index.d.ts
CHANGED
|
@@ -13,4 +13,4 @@ export type { BundleResult, SolutionImportResponse, StudioWebConfig, StudioWebSo
|
|
|
13
13
|
export type { SolutionUploadOperation } from "./upload-service";
|
|
14
14
|
export { buildSolutionUploadFailureOutput, importSolution, isSolutionUploadHttpError, overwriteSolution, SolutionUploadHttpError, solutionExistsOnStudioWeb, uploadOrOverwriteSolution, } from "./upload-service";
|
|
15
15
|
export { SDK_USER_AGENT } from "./user-agent.js";
|
|
16
|
-
export { collectFiles, createZipFromDir } from "./zip-utils";
|
|
16
|
+
export { collectFiles, createZipFromDir, finalizeZip64 } from "./zip-utils";
|
|
@@ -89,5 +89,10 @@ export declare function restoreSolutionFile(filePath: string, rawContent: string
|
|
|
89
89
|
* `subType` is forwarded to the SDK's project template picker. For AppV2
|
|
90
90
|
* projects: pass `"Coded"` for a regular coded app or `"CodedAction"` for a
|
|
91
91
|
* coded action app; leave undefined for other project types.
|
|
92
|
+
*
|
|
93
|
+
* Spec-level patches to the emitted artefact resources (App→Package wire,
|
|
94
|
+
* `isOverridable: true` round-trip default) live in the registered
|
|
95
|
+
* `ArtefactPairBindingProvider` and fire at write time — this function
|
|
96
|
+
* stays as thin as before that concern existed.
|
|
92
97
|
*/
|
|
93
98
|
export declare function createProjectInSolutionBuilder(solutionDir: string, projectId: string, projectName: string, projectType: string, subType?: string): Promise<Error | null>;
|
|
@@ -17,6 +17,9 @@ export * from "./providers/resource-builder-init";
|
|
|
17
17
|
export * from "./services/entry-point-spec-enhancer";
|
|
18
18
|
export * from "./services/local-resource-matcher";
|
|
19
19
|
export * from "./services/project-artifacts-service";
|
|
20
|
+
export * from "./services/project-template-types";
|
|
21
|
+
export { normalizeResourceCasing, normalizeResourceFileCasing, saveCasingNormalized, } from "./services/resource-casing";
|
|
20
22
|
export * from "./services/resource-refresh-service";
|
|
23
|
+
export * from "./services/resource-remote-sync";
|
|
21
24
|
export * from "./services/solution-manifest";
|
|
22
25
|
export * from "./services/sync-resources-from-bindings";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ISolutionContext } from "@uipath/resource-builder-sdk/models";
|
|
2
|
+
import { MultiFileSolutionDefinitionFactory, MultiFileSolutionDefinitionProvider, type SolutionDefinition } from "@uipath/resource-builder-sdk/solution";
|
|
3
|
+
/**
|
|
4
|
+
* Runs on every `writeAsync` to backfill artefact-pair wiring the TS SDK's
|
|
5
|
+
* `bindArtefactResources` doesn't yet port from the C# `BindAppResources`
|
|
6
|
+
* else-branch + `EnsureSolutionResourceFields`. Two idempotent patches:
|
|
7
|
+
* app→package linkage (spec.package.key + dependency) and isOverridable=true
|
|
8
|
+
* on the paired app+package. Timing matters — before the serializer strips
|
|
9
|
+
* `undefined`-valued metadata-declared spec keys.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ArtefactPairBindingProvider extends MultiFileSolutionDefinitionProvider {
|
|
12
|
+
writeAsync(context: ISolutionContext, solution: SolutionDefinition, cancellationToken?: AbortSignal): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The SDK's DI resolves `ISolutionDefinitionFactory` at request time
|
|
16
|
+
* (`saveChangesAsync` → `saveAsync`), so registering the provider alone
|
|
17
|
+
* isn't enough — the factory has to produce it too.
|
|
18
|
+
*/
|
|
19
|
+
export declare class ArtefactPairBindingSolutionDefinitionFactory extends MultiFileSolutionDefinitionFactory {
|
|
20
|
+
getProviderAsync(): Promise<ArtefactPairBindingProvider>;
|
|
21
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ISolutionContext } from "@uipath/resource-builder-sdk/models";
|
|
2
|
+
import type { IFileStorageProvider, IFileStorageProviderFactory } from "@uipath/resource-builder-sdk/providers";
|
|
2
3
|
/**
|
|
3
4
|
* Factory for creating FileSystemFileStorageProvider instances.
|
|
4
5
|
*/
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { IResourceBuilderServices } from "@uipath/resource-builder-sdk";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* (
|
|
3
|
+
* CLI entry for ResourceBuilderServices. Adds three providers on top of the SDK
|
|
4
|
+
* defaults: `ArtefactPairBindingSolutionDefinitionFactory` (fills the
|
|
5
|
+
* app+package linkage gap in `bindArtefactResources`), `EntryPointSpecEnhancer`
|
|
6
|
+
* (overlays the on-disk entry points at GET), and
|
|
7
|
+
* `CliResourceBuilderLoggerFactory`, which replaces the SDK's default logger —
|
|
8
|
+
* that one prints its message templates unfilled (`{solutionKey}`, `%s`) and
|
|
9
|
+
* bypasses `--log-level` / `--log-file`; see that file for why both matter.
|
|
7
10
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* `CliResourceBuilderLoggerFactory` replaces the SDK's default logger, which
|
|
13
|
-
* prints its message templates unfilled (`{solutionKey}`, `%s`) and bypasses
|
|
14
|
-
* `--log-level` / `--log-file` — see that file for why both matter.
|
|
11
|
+
* There is no caller-supplied enhancer hook: a project type's knowledge
|
|
12
|
+
* reaches the resources through the contribution contract at pack / refresh
|
|
13
|
+
* time (`solution-tool/src/services/project-contributions.ts`), not through a
|
|
14
|
+
* read-time enhancer that would make every read load a tool bundle.
|
|
15
15
|
*/
|
|
16
16
|
export declare function createResourceBuilderServices(): Promise<IResourceBuilderServices>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { AuthenticationInfo
|
|
1
|
+
import type { AuthenticationInfo } from "@uipath/resource-builder-sdk/models";
|
|
2
|
+
import type { IAccessProvider } from "@uipath/resource-builder-sdk/providers";
|
|
2
3
|
/**
|
|
3
4
|
* IAccessProvider that maps SDK service scopes to full tenant-scoped URLs.
|
|
4
5
|
* Unlike CliAccessProvider (which returns bare baseUrl), this builds the correct
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type IFileSystem } from "@uipath/filesystem";
|
|
2
|
-
import type {
|
|
2
|
+
import type { ISolutionContext } from "@uipath/resource-builder-sdk/models";
|
|
3
|
+
import type { IArtifactResourceSpecEnhancer, ResourcePropertyMetadata } from "@uipath/resource-builder-sdk/services";
|
|
4
|
+
import type { ResourceDefinition } from "@uipath/resource-builder-sdk/solution";
|
|
3
5
|
/**
|
|
4
6
|
* Reads the project's `entry-points.json` at GET time and projects the primary
|
|
5
7
|
* entry points onto the resource spec, so consumers see the current on-disk
|
|
@@ -20,8 +22,25 @@ export declare class EntryPointSpecEnhancer implements IArtifactResourceSpecEnha
|
|
|
20
22
|
constructor(fs?: IFileSystem);
|
|
21
23
|
enhanceSpecAsync(context: ISolutionContext, resource: ResourceDefinition, _propertiesMetadata: Map<string, ResourcePropertyMetadata>, spec: Map<string, unknown>, _cancellationToken?: AbortSignal): Promise<void>;
|
|
22
24
|
private applyEntryPointAsync;
|
|
23
|
-
private findSolutionFileAsync;
|
|
24
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* The entry-point spec keys for one project, read fresh off disk.
|
|
28
|
+
*
|
|
29
|
+
* One implementation, two consumers: `EntryPointSpecEnhancer` overlays them at
|
|
30
|
+
* GET time, and solution-tool's contribution driver writes the same keys onto
|
|
31
|
+
* the resource JSON so they survive into the packed solution. Keeping the
|
|
32
|
+
* parsing here is what stops the two paths disagreeing on the shape.
|
|
33
|
+
*
|
|
34
|
+
* `entryPoints` carries the raw `entry-points.json` text (with `$schema`,
|
|
35
|
+
* `$id`, indentation) — matches what Studio Web returns on the process
|
|
36
|
+
* resource spec. `entryPointName` / `entryPointUniqueId` name the single
|
|
37
|
+
* primary entry, and are `null` whenever the project has zero or several.
|
|
38
|
+
*
|
|
39
|
+
* Returns `undefined` when there is nothing to say (project not in the
|
|
40
|
+
* manifest, no `entry-points.json`, empty file). Throws on malformed JSON —
|
|
41
|
+
* both callers catch and warn.
|
|
42
|
+
*/
|
|
43
|
+
export declare function computeEntryPointSpec(fs: IFileSystem, solutionDir: string, projectKey: string): Promise<Record<string, unknown> | undefined>;
|
|
25
44
|
/**
|
|
26
45
|
* Applies `EntryPointSpecEnhancer` against a plain-object spec returned by the
|
|
27
46
|
* SDK's `getConfigurationAsync` path. Used by `resource get` until the SDK
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ResourceDefinition } from "@uipath/resource-builder-sdk";
|
|
1
|
+
import type { ResourceDefinition } from "@uipath/resource-builder-sdk/solution";
|
|
2
2
|
/**
|
|
3
3
|
* Pure, dependency-free matching primitives for local solution resources.
|
|
4
4
|
* A leaf module on purpose: `sync-resources-from-bindings` and
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether the resource-builder resolves this project type's artefact resources
|
|
3
|
+
* from its bare `type` row, rather than only from a `<type>_<subType>` one.
|
|
4
|
+
*
|
|
5
|
+
* Callers use it to decide who generates a project's resources. A type with a
|
|
6
|
+
* bare row can be registered from the host at `projects add` time. A type
|
|
7
|
+
* without one cannot: the variant that picks its row lives in a file format the
|
|
8
|
+
* project's own tool owns, so its resources arrive later — at `<tool> init`
|
|
9
|
+
* inside a solution, or at pack / upload / `resources refresh`, where the tool
|
|
10
|
+
* is loaded and reports its `projectSubType` through the project resource
|
|
11
|
+
* contribution and `reconcileProjectsAsync` generates them.
|
|
12
|
+
*
|
|
13
|
+
* Reading the answer off the table keeps the list of such types out of every
|
|
14
|
+
* caller (AGENTS.md Hard Rule #19): the table is the resource-builder's own,
|
|
15
|
+
* and a type added to it needs no edit here or in the CLI.
|
|
16
|
+
*
|
|
17
|
+
* Registering with no subType is not a harmless no-op, which is why the
|
|
18
|
+
* distinction matters. Measured against resource-builder-sdk
|
|
19
|
+
* 2025.11.0-alpha5891-4020, on a fresh solution:
|
|
20
|
+
*
|
|
21
|
+
* - `createProjectAsync` with a type that has no bare row and no subType
|
|
22
|
+
* writes `process/process/<name>.json` — the SDK's Process fallback, i.e.
|
|
23
|
+
* the wrong resource, which then has to be repaired.
|
|
24
|
+
* - `reconcileProjectsAsync` with the right subType repairs it in full,
|
|
25
|
+
* including deleting that stale `process/` artefact, and corrects an app
|
|
26
|
+
* resource generated under the wrong variant.
|
|
27
|
+
* - `reconcileProjectsAsync` with no subType is inert, never destructive.
|
|
28
|
+
*/
|
|
29
|
+
export declare function hasBareTemplateRow(projectType: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether the table has any row for this type — bare or `<type>_<subType>`.
|
|
32
|
+
* A type with none declares no template-generated resources at all, so
|
|
33
|
+
* nothing is left for a later tool run to generate.
|
|
34
|
+
*/
|
|
35
|
+
export declare function hasAnyTemplateRow(projectType: string): boolean;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ISolutionBuilder, SolutionDefinition } from "@uipath/resource-builder-sdk";
|
|
2
|
+
export declare function lowerFirstChar(value: string): string;
|
|
3
|
+
export declare function normalizeResourceCasing(solution: Pick<SolutionDefinition, "resources"> | null | undefined): number;
|
|
4
|
+
/**
|
|
5
|
+
* Normalize in-memory casing then dispose. Callers run
|
|
6
|
+
* `normalizeResourceFileCasing(dir)` separately when this returns null
|
|
7
|
+
* because the file-level repair needs the resolved solution dir and
|
|
8
|
+
* should only run when dispose succeeded.
|
|
9
|
+
*/
|
|
10
|
+
export declare function saveCasingNormalized(builder: Pick<ISolutionBuilder, "disposeAsync"> & {
|
|
11
|
+
context: {
|
|
12
|
+
loadAsync(): Promise<Pick<SolutionDefinition, "resources">>;
|
|
13
|
+
};
|
|
14
|
+
}): Promise<Error | null>;
|
|
15
|
+
/**
|
|
16
|
+
* The SDK reads `kind`/`type` through `toLowerFirstChar` but writes them back
|
|
17
|
+
* verbatim, and its stale-path check compares paths case-insensitively. A
|
|
18
|
+
* server-cased file therefore gains a lower-cased twin on the next save, both
|
|
19
|
+
* carrying the same resource key, and the load after that throws "Node already
|
|
20
|
+
* added to the graph" on a case-sensitive filesystem. Move every resource file
|
|
21
|
+
* to the path the next save targets, and drop the twins a corrupted tree
|
|
22
|
+
* already carries.
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeResourceFileCasing(solutionDir: string): Promise<string[]>;
|
|
@@ -5,6 +5,13 @@ export interface ResourceRefreshOptions {
|
|
|
5
5
|
loginValidity?: number;
|
|
6
6
|
/** Pin auth to this exact `.uipath/.auth` path. */
|
|
7
7
|
envFilePath?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Resolves each project's contributed subType, keyed by the `.uipx`
|
|
10
|
+
* project `Id`. Called after the folder and auth checks pass and before
|
|
11
|
+
* the sync, so a caller that has to load tool bundles to answer only pays
|
|
12
|
+
* for them on a run that is otherwise going to proceed.
|
|
13
|
+
*/
|
|
14
|
+
resolveProjectSubTypesAsync?: () => Promise<ReadonlyMap<string, string>>;
|
|
8
15
|
}
|
|
9
16
|
export interface ResourceRefreshSuccess {
|
|
10
17
|
ok: true;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/** Discriminator for {@link ResourceRemoteSyncFailure}; library callers can ignore the tag and read `.message` / `.ok`. */
|
|
2
|
+
export type ResourceRemoteSyncFailureReason = "solution_not_found" | "not_a_solution" | "auth_failed" | "resource_not_found" | "no_remote_reference" | "comparison_unavailable" | "sync_failed" | "save_failed";
|
|
3
|
+
export interface ResourceRemoteSyncOptions {
|
|
4
|
+
/** Write the cloud definition over the local one. When `false` (default) nothing is written and the result only reports the drift. */
|
|
5
|
+
force?: boolean;
|
|
6
|
+
/** Minimum minutes before token expiration to trigger a refresh. Default `10` (matches the CLI's `--login-validity`). */
|
|
7
|
+
loginValidity?: number;
|
|
8
|
+
/** Pin auth to this exact `.uipath/.auth` path. */
|
|
9
|
+
envFilePath?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ResourceRemoteSyncSuccess {
|
|
12
|
+
ok: true;
|
|
13
|
+
/** `true` when the cloud definition was written to disk; `false` for a drift-only (no `--force`) run. */
|
|
14
|
+
applied: boolean;
|
|
15
|
+
key: string;
|
|
16
|
+
/** Spec property names that differ between the local and the cloud definition, sorted. Empty when the two already agree. */
|
|
17
|
+
changed: string[];
|
|
18
|
+
/** Properties that still differ from the cloud after a write, because the SDK declined to set them (reference, read-only or unknown to the kind metadata). Empty on a clean sync. */
|
|
19
|
+
skipped: string[];
|
|
20
|
+
/** The resulting local spec — post-write when `applied`, unchanged otherwise. */
|
|
21
|
+
spec: Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
export interface ResourceRemoteSyncFailure {
|
|
24
|
+
ok: false;
|
|
25
|
+
reason: ResourceRemoteSyncFailureReason;
|
|
26
|
+
/** Human-readable summary suitable for top-level surfacing. */
|
|
27
|
+
message: string;
|
|
28
|
+
}
|
|
29
|
+
export type ResourceRemoteSyncResult = ResourceRemoteSyncSuccess | ResourceRemoteSyncFailure;
|
|
30
|
+
/**
|
|
31
|
+
* Programmatic core of `uip solution resources edit --source remote`: replaces a
|
|
32
|
+
* solution resource's spec with the current cloud definition it was imported from.
|
|
33
|
+
*
|
|
34
|
+
* This is the one path that overwrites an already-imported resource. `refresh` is
|
|
35
|
+
* deliberately import-only (see `sync-resources-from-bindings`), so a field added
|
|
36
|
+
* to a cloud entity after the initial import never reaches the solution without
|
|
37
|
+
* this command.
|
|
38
|
+
*
|
|
39
|
+
* Mechanism: read the cloud side with `getResourceConfigurationsComparisonAsync`
|
|
40
|
+
* (which returns the solution config and the FPS export side by side and writes
|
|
41
|
+
* nothing), then hand that spec to `updateConfigurationAsync` — the same writer
|
|
42
|
+
* `resources edit --patch` uses. It mutates the existing resource in place, so
|
|
43
|
+
* the file keeps its path and the resource keeps its key and name.
|
|
44
|
+
*
|
|
45
|
+
* **Two richer-looking SDK calls were tried first and both are wrong here.**
|
|
46
|
+
*
|
|
47
|
+
* `syncConfigurationFromReferenceAsync` looks the resource's cloud source up via
|
|
48
|
+
* `getDebugOverwrites`, which calls the *server* rather than reading the local
|
|
49
|
+
* `debug_overwrites.json`. For a solution never uploaded to Studio Web the server
|
|
50
|
+
* has nothing, so it returns the resource untouched and reports success — every
|
|
51
|
+
* `--force` was a silent no-op. Confirmed live: `getDebugOverwrites size: 0`
|
|
52
|
+
* while the file on disk held the row.
|
|
53
|
+
*
|
|
54
|
+
* `addOrUpdateResourceToSolutionAsync` (and the command behind it) re-imports the
|
|
55
|
+
* FPS export, which carries the *server* casing of `kind` — `Queue`, not `queue`.
|
|
56
|
+
* The re-add therefore writes a second file at `resources/.../Queue/<name>.json`
|
|
57
|
+
* beside the original `queue/<name>.json`. On a case-sensitive filesystem those
|
|
58
|
+
* are two files for one resource key: the load throws "Node already added to the
|
|
59
|
+
* graph", and once `normalizeResourceFileCasing` folds them it keeps the one
|
|
60
|
+
* already at the target path — the stale one — silently discarding the write.
|
|
61
|
+
* Reproduced on a case-sensitive volume; it is why only the Linux e2e leg failed.
|
|
62
|
+
*
|
|
63
|
+
* What survives from that: never trust a write to have happened. The spec is read
|
|
64
|
+
* back and diffed, and anything the writer declined to set is reported in
|
|
65
|
+
* `skipped` rather than folded into a success.
|
|
66
|
+
*/
|
|
67
|
+
export declare function resourceRemoteSyncAsync(solutionPath: string | undefined, resourceKey: string, options?: ResourceRemoteSyncOptions): Promise<ResourceRemoteSyncResult>;
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
+
import { type IFileSystem } from "@uipath/filesystem";
|
|
2
|
+
export interface SolutionManifestProject {
|
|
3
|
+
Id?: unknown;
|
|
4
|
+
Type?: unknown;
|
|
5
|
+
ProjectRelativePath?: unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface SolutionManifest {
|
|
8
|
+
Projects?: SolutionManifestProject[];
|
|
9
|
+
}
|
|
1
10
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* Lives in `services/` (not `commands/project.ts`) so callers can mock the
|
|
7
|
-
* check without pulling in the full project-commands module.
|
|
11
|
+
* Stricter than `findSolutionFile` (which walks up to find one) — write
|
|
12
|
+
* commands must not silently mutate the wrong folder when run from an
|
|
13
|
+
* arbitrary cwd.
|
|
8
14
|
*/
|
|
9
15
|
export declare function assertSolutionManifest(dir: string): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Soft-fails to `undefined` on missing / unreadable / invalid `.uipx`.
|
|
18
|
+
* Consumers (read-time enhancers, design-time reconcilers) need
|
|
19
|
+
* tolerance — pack's own fail-fast policy lives elsewhere
|
|
20
|
+
* (`assertSolutionManifest`, and each project tool's own contribution errors).
|
|
21
|
+
*/
|
|
22
|
+
export declare function readSolutionManifest(fs: IFileSystem, solutionDir: string): Promise<SolutionManifest | undefined>;
|
|
23
|
+
export declare function resolveProjectDirFromManifest(fs: IFileSystem, solutionDir: string, projectKey: string): Promise<string | undefined>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { IResourceBuilderServices } from "@uipath/resource-builder-sdk";
|
|
2
|
+
import type { ISolutionBuilder, ResourceDefinition } from "@uipath/resource-builder-sdk/solution";
|
|
2
3
|
interface RequiredPropertyDefault {
|
|
3
4
|
property: string;
|
|
4
5
|
/** Empty placeholder value matching the property's declared type. */
|
|
@@ -42,7 +43,7 @@ interface SyncResult {
|
|
|
42
43
|
* @param solutionDir - Path to the solution directory
|
|
43
44
|
* @param projectPaths - Specific project paths to scan (if omitted, scans all projects in .uipx)
|
|
44
45
|
*/
|
|
45
|
-
export declare function syncResourcesFromBindings(solutionDir: string, projectPaths?: string[]): Promise<SyncResult>;
|
|
46
|
+
export declare function syncResourcesFromBindings(solutionDir: string, projectPaths?: string[], projectSubTypes?: ReadonlyMap<string, string>): Promise<SyncResult>;
|
|
46
47
|
/**
|
|
47
48
|
* Mirror of SDK's private `addResourceWithUniqueName`
|
|
48
49
|
* (resource-builder-sdk index.js:673): if any other resource of the same
|
|
@@ -148,4 +149,4 @@ export declare function readUipxProjects(solutionDir: string): Promise<UipxProje
|
|
|
148
149
|
* Sync resources from bindings with logging. Non-fatal — logs warnings
|
|
149
150
|
* on failure and continues. Used by pack and upload before packaging.
|
|
150
151
|
*/
|
|
151
|
-
export declare function syncAndLog(solutionDir: string): Promise<void>;
|
|
152
|
+
export declare function syncAndLog(solutionDir: string, projectSubTypes?: ReadonlyMap<string, string>): Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uipath/solution-sdk",
|
|
3
|
+
"author": "UiPath",
|
|
3
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
4
|
-
"version": "1.
|
|
5
|
+
"version": "1.203.0-preview.160",
|
|
5
6
|
"repository": {
|
|
6
7
|
"type": "git",
|
|
7
8
|
"url": "https://github.com/UiPath/cli.git",
|
|
@@ -39,5 +40,5 @@
|
|
|
39
40
|
"dist"
|
|
40
41
|
],
|
|
41
42
|
"private": false,
|
|
42
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "3a42062ba731afca4595ba9aa8a80afc9667528d"
|
|
43
44
|
}
|