@uipath/integrationservice-tool 1.205.0-preview.285 → 1.205.0-preview.293
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 +2 -2
- package/dist/{embedded-file-reader-r66242ey.js → embedded-file-reader-hcyf111w.js} +16 -16
- package/dist/{index-kmp9fmhb.js → index-dztdhj14.js} +1 -1
- package/dist/{index-xafcs9np.js → index-grh5z9h5.js} +219 -70
- package/dist/index.js +1 -1
- package/dist/{tool-gdtpsdn7.js → tool-j98qvwdt.js} +8 -2
- package/dist/{tool-fasmhahw.js → tool-sw1tk2wb.js} +5 -5
- package/dist/tool.js +1 -1
- package/package.json +2 -2
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
JsonSerializerNames,
|
|
4
4
|
JsonSerializerProxy,
|
|
5
5
|
StreamSerializer
|
|
6
|
-
} from "./tool-
|
|
6
|
+
} from "./tool-j98qvwdt.js";
|
|
7
7
|
import {
|
|
8
8
|
FirstPartyServiceApi
|
|
9
9
|
} from "./tool-53w8skv5.js";
|
|
@@ -3637,6 +3637,7 @@ var ErrorCodes = {
|
|
|
3637
3637
|
ResourceAttributeMismatch: "2023",
|
|
3638
3638
|
AppSystemNameConflict: "2024",
|
|
3639
3639
|
InvalidResourceFile: "2025",
|
|
3640
|
+
DuplicatePackageName: "2026",
|
|
3640
3641
|
ResourceNotFound: "1000",
|
|
3641
3642
|
ResourceAlreadyExists: "Resources.ResourceAlreadyExists",
|
|
3642
3643
|
ResourceDependencyNotFound: "Resources.ResourceDependencyNotFound",
|
|
@@ -4165,6 +4166,30 @@ function getPackageType(processResourceType) {
|
|
|
4165
4166
|
return processResourceType;
|
|
4166
4167
|
return processTypeToPackageTypeMap[processResourceType.toLowerCase()] ?? processResourceType;
|
|
4167
4168
|
}
|
|
4169
|
+
function generatePackageName(solutionName, projectName, processResourceType) {
|
|
4170
|
+
const packageType = getPackageType(processResourceType) ?? "";
|
|
4171
|
+
const truncateCharsNo = Math.floor((PACKAGE_NAME_MAX_LENGTH - PACKAGE_NAME_SEPARATION_CHARS - packageType.length) / 2);
|
|
4172
|
+
return sanitizeNuGetPackageName(`${truncate(solutionName, truncateCharsNo)}.${packageType}.${truncate(projectName, truncateCharsNo)}`);
|
|
4173
|
+
}
|
|
4174
|
+
function resolvePackageNameAfterRename(processResource, solutionName, projectName, oldSolutionName, oldProjectName) {
|
|
4175
|
+
const currentPackageName = processResource.spec?.[WellKnownPropertyNames.PackageName];
|
|
4176
|
+
if (!solutionName)
|
|
4177
|
+
return currentPackageName ?? undefined;
|
|
4178
|
+
const oldGeneratedPackageName = generatePackageName(oldSolutionName ?? "", oldProjectName ?? processResource.name, processResource.type);
|
|
4179
|
+
return currentPackageName && currentPackageName.toLowerCase() !== oldGeneratedPackageName.toLowerCase() ? currentPackageName : generatePackageName(solutionName, projectName, processResource.type);
|
|
4180
|
+
}
|
|
4181
|
+
function findPackageNameConflict(solution, projectKey, solutionName, packageName) {
|
|
4182
|
+
if (!packageName)
|
|
4183
|
+
return;
|
|
4184
|
+
const wanted = packageName.toLowerCase();
|
|
4185
|
+
return solution.resources.find((resource) => resource.projectKey !== undefined && resource.projectKey !== projectKey && resource.kind.toLowerCase() === WellKnownProjectType.Process.toLowerCase() && effectivePackageName(resource, solutionName)?.toLowerCase() === wanted);
|
|
4186
|
+
}
|
|
4187
|
+
function effectivePackageName(processResource, solutionName) {
|
|
4188
|
+
const packageName = processResource.spec?.[WellKnownPropertyNames.PackageName];
|
|
4189
|
+
if (packageName)
|
|
4190
|
+
return packageName;
|
|
4191
|
+
return solutionName ? generatePackageName(solutionName, processResource.name, processResource.type) : undefined;
|
|
4192
|
+
}
|
|
4168
4193
|
function changePackageName(processResource, solutionName, projectName, oldSolutionName, oldProjectName) {
|
|
4169
4194
|
if (!solutionName)
|
|
4170
4195
|
return false;
|
|
@@ -4173,11 +4198,9 @@ function changePackageName(processResource, solutionName, projectName, oldSoluti
|
|
|
4173
4198
|
spec[WellKnownPropertyNames.PackageName] = null;
|
|
4174
4199
|
processResource.spec = spec;
|
|
4175
4200
|
const currentPackageName = spec[WellKnownPropertyNames.PackageName];
|
|
4176
|
-
const
|
|
4177
|
-
const truncateCharsNo = Math.floor((PACKAGE_NAME_MAX_LENGTH - PACKAGE_NAME_SEPARATION_CHARS - packageType.length) / 2);
|
|
4178
|
-
const newPackageName = sanitizeNuGetPackageName(`${truncate(solutionName, truncateCharsNo)}.${packageType}.${truncate(projectName, truncateCharsNo)}`);
|
|
4201
|
+
const newPackageName = generatePackageName(solutionName, projectName, processResource.type);
|
|
4179
4202
|
const projectNameForOldPackage = oldProjectName ?? processResource.name;
|
|
4180
|
-
const oldGeneratedPackageName =
|
|
4203
|
+
const oldGeneratedPackageName = generatePackageName(oldSolutionName ?? "", projectNameForOldPackage, processResource.type);
|
|
4181
4204
|
if (!currentPackageName || currentPackageName.toLowerCase() === oldGeneratedPackageName.toLowerCase()) {
|
|
4182
4205
|
spec[WellKnownPropertyNames.PackageName] = newPackageName;
|
|
4183
4206
|
renamePackageDependencies(processResource, projectNameForOldPackage, projectName);
|
|
@@ -4388,8 +4411,15 @@ class MultiFileSolutionDefinitionProvider {
|
|
|
4388
4411
|
return withFileOperationTimeout2(provider, resolveFileOperationTimeoutMs(this.options));
|
|
4389
4412
|
}
|
|
4390
4413
|
async readAsync(context, cancellationToken) {
|
|
4414
|
+
return this.readWithKindsAsync(context, undefined, cancellationToken);
|
|
4415
|
+
}
|
|
4416
|
+
async readKindsAsync(context, kinds, cancellationToken) {
|
|
4417
|
+
return this.readWithKindsAsync(context, context.isReadOnly ? kinds : undefined, cancellationToken);
|
|
4418
|
+
}
|
|
4419
|
+
async readWithKindsAsync(context, kinds, cancellationToken) {
|
|
4391
4420
|
this.logger.info("Reading multi-file solution definition for solution %s", context.path);
|
|
4392
4421
|
const loadStarted = nowMs();
|
|
4422
|
+
let listedFileCount = 0;
|
|
4393
4423
|
let fileCount = 0;
|
|
4394
4424
|
let listMs = 0;
|
|
4395
4425
|
let readStarted = loadStarted;
|
|
@@ -4427,9 +4457,11 @@ class MultiFileSolutionDefinitionProvider {
|
|
|
4427
4457
|
loaded: loadedCount,
|
|
4428
4458
|
missing: missingFiles.length,
|
|
4429
4459
|
invalid: invalidFiles.length,
|
|
4430
|
-
parseErrors: parseErrors.length
|
|
4460
|
+
parseErrors: parseErrors.length,
|
|
4461
|
+
kinds: kinds?.join(",") ?? "*",
|
|
4462
|
+
listedFileCount
|
|
4431
4463
|
};
|
|
4432
|
-
const message = `Solution read ${outcome} for solution ${context.path}: ${metrics.fileCount} files in ${metrics.totalMs} ms (list ${metrics.listMs} ms, read ${metrics.readWallMs} ms wall, io ${metrics.ioMs} ms summed, max file io ${metrics.maxFileIoMs} ms, parse ${metrics.parseMs} ms, hash ${metrics.hashMs} ms, merge ${metrics.mergeMs} ms); ${metrics.chars} chars; parallelism ${metrics.degreeOfParallelism}; readOnly ${metrics.isReadOnly}; loaded ${metrics.loaded}, missing ${metrics.missing}, invalid ${metrics.invalid}, parseErrors ${metrics.parseErrors}`;
|
|
4464
|
+
const message = `Solution read ${outcome} for solution ${context.path}: ${metrics.fileCount} files in ${metrics.totalMs} ms (list ${metrics.listMs} ms, read ${metrics.readWallMs} ms wall, io ${metrics.ioMs} ms summed, max file io ${metrics.maxFileIoMs} ms, parse ${metrics.parseMs} ms, hash ${metrics.hashMs} ms, merge ${metrics.mergeMs} ms); ${metrics.chars} chars; parallelism ${metrics.degreeOfParallelism}; readOnly ${metrics.isReadOnly}; loaded ${metrics.loaded}, missing ${metrics.missing}, invalid ${metrics.invalid}, parseErrors ${metrics.parseErrors}; kinds ${metrics.kinds}, listed ${metrics.listedFileCount}`;
|
|
4433
4465
|
if (outcome === "Success")
|
|
4434
4466
|
this.logger.info(message, metrics);
|
|
4435
4467
|
else
|
|
@@ -4455,8 +4487,11 @@ class MultiFileSolutionDefinitionProvider {
|
|
|
4455
4487
|
tree.length = 0;
|
|
4456
4488
|
}
|
|
4457
4489
|
const listStarted = nowMs();
|
|
4458
|
-
const
|
|
4490
|
+
const listedFiles = await fileStorageProvider.getFilesAsync(SolutionConstants.RESOURCE_FILES_FOLDER_NAME, "*.json", cancellationToken);
|
|
4459
4491
|
listMs = nowMs() - listStarted;
|
|
4492
|
+
listedFileCount = listedFiles.length;
|
|
4493
|
+
const wantedKinds = kinds && new Set(kinds.map((k) => k.toLowerCase()));
|
|
4494
|
+
const resourceFiles = wantedKinds === undefined ? listedFiles : listedFiles.filter((resourceFile) => MultiFileSolutionDefinitionProvider.mayHoldAnyKind(resourceFile, wantedKinds));
|
|
4460
4495
|
fileCount = resourceFiles.length;
|
|
4461
4496
|
readStarted = nowMs();
|
|
4462
4497
|
const readResults = await this.readResourceFilesAsync(context, fileStorageProvider, resourceFiles, cancellationToken);
|
|
@@ -4699,6 +4734,10 @@ class MultiFileSolutionDefinitionProvider {
|
|
|
4699
4734
|
};
|
|
4700
4735
|
}
|
|
4701
4736
|
}
|
|
4737
|
+
static mayHoldAnyKind(resourceFile, lowerCaseKinds) {
|
|
4738
|
+
const segments = resourceFile.replace(/\\/g, "/").split("/").filter((s) => s.length > 0);
|
|
4739
|
+
return segments.slice(0, -1).some((segment) => lowerCaseKinds.has(segment.toLowerCase()));
|
|
4740
|
+
}
|
|
4702
4741
|
applyFolders(resource, resourceFile) {
|
|
4703
4742
|
const relPath = resourceFile.replace(/\\/g, "/");
|
|
4704
4743
|
const segments = relPath.split("/").filter((s) => s.length > 0);
|
|
@@ -4802,6 +4841,8 @@ class MultiFileSolutionDefinitionProvider {
|
|
|
4802
4841
|
newPaths.forEach((value, key) => {
|
|
4803
4842
|
existingPaths.set(key, value);
|
|
4804
4843
|
});
|
|
4844
|
+
existingTree.length = 0;
|
|
4845
|
+
existingTree.push(...orderedResourceKeys);
|
|
4805
4846
|
}
|
|
4806
4847
|
async deleteFilesAsync(context, filesToDelete, cancellationToken) {
|
|
4807
4848
|
if (!filesToDelete || filesToDelete.length === 0 || context.isReadOnly)
|
|
@@ -5031,8 +5072,8 @@ class MultiFileSolutionDefinitionFactory {
|
|
|
5031
5072
|
// ../../node_modules/@uipath/resource-builder-sdk/dist/embedded-files-default.js
|
|
5032
5073
|
async function createDefaultEmbeddedFileReaderAsync() {
|
|
5033
5074
|
const [{ EmbeddedFileReader }, { JsonSerializerFactory: JsonSerializerFactory2 }] = await Promise.all([
|
|
5034
|
-
import("./embedded-file-reader-
|
|
5035
|
-
import("./index-
|
|
5075
|
+
import("./embedded-file-reader-hcyf111w.js"),
|
|
5076
|
+
import("./index-dztdhj14.js")
|
|
5036
5077
|
]);
|
|
5037
5078
|
return new EmbeddedFileReader(new JsonSerializerFactory2);
|
|
5038
5079
|
}
|
|
@@ -5646,7 +5687,103 @@ class BindingOverwritesMappingRequest {
|
|
|
5646
5687
|
}
|
|
5647
5688
|
}
|
|
5648
5689
|
|
|
5690
|
+
// ../../node_modules/@uipath/resource-builder-sdk/dist/bindings/jit-debug-project-types.js
|
|
5691
|
+
var JIT_DEBUG_PROJECT_TYPES_FEATURE_FLAG = "FE.JitDebugProjectTypes";
|
|
5692
|
+
var PROCESS_KIND = "process";
|
|
5693
|
+
var BUSINESS_RULE_KIND = "businessrule";
|
|
5694
|
+
var APP_KIND = "app";
|
|
5695
|
+
var LOW_CODE_APP_PROJECT_TYPE = "webapp";
|
|
5696
|
+
var LOW_CODE_APP_TYPES = new Set([
|
|
5697
|
+
"workflow action"
|
|
5698
|
+
]);
|
|
5699
|
+
var CODED_APP_PROJECT_TYPE = "appv2";
|
|
5700
|
+
var CODED_APP_TYPES = new Set([
|
|
5701
|
+
"coded",
|
|
5702
|
+
"codedaction"
|
|
5703
|
+
]);
|
|
5704
|
+
var DEFAULT_PROCESS_PROJECT_TYPE = "process";
|
|
5705
|
+
var KNOWN_PROCESS_PROJECT_TYPES = new Set([
|
|
5706
|
+
DEFAULT_PROCESS_PROJECT_TYPE,
|
|
5707
|
+
"processorchestration",
|
|
5708
|
+
"agent",
|
|
5709
|
+
"api",
|
|
5710
|
+
"flow",
|
|
5711
|
+
"function",
|
|
5712
|
+
"casemanagement",
|
|
5713
|
+
"webapp",
|
|
5714
|
+
"businessrules"
|
|
5715
|
+
]);
|
|
5716
|
+
var BUSINESS_RULE_PROJECT_TYPE = "businessrules";
|
|
5717
|
+
function parseJitDebugProjectTypes(flagValue) {
|
|
5718
|
+
if (!flagValue || !flagValue.trim())
|
|
5719
|
+
return [];
|
|
5720
|
+
return flagValue.split(",").map((t) => t.trim()).filter((t) => t.length > 0);
|
|
5721
|
+
}
|
|
5722
|
+
function solutionSupportsJitDebug(solution, flagValue) {
|
|
5723
|
+
const enabledProjectTypes = parseJitDebugProjectTypes(flagValue).map((t) => t.toLowerCase());
|
|
5724
|
+
if (enabledProjectTypes.length === 0)
|
|
5725
|
+
return false;
|
|
5726
|
+
return (solution.resources ?? []).filter((r) => (r.projectKey != null || r.isArtefactResource === true) && isDecisionKind(r.kind)).every((r) => enabledProjectTypes.some((projectType) => matches(projectType, r)));
|
|
5727
|
+
}
|
|
5728
|
+
function isDecisionKind(kind) {
|
|
5729
|
+
const normalized = (kind ?? "").toLowerCase();
|
|
5730
|
+
return normalized === PROCESS_KIND || normalized === BUSINESS_RULE_KIND || normalized === APP_KIND;
|
|
5731
|
+
}
|
|
5732
|
+
function matches(projectType, resource) {
|
|
5733
|
+
if ((resource.kind ?? "").toLowerCase() === BUSINESS_RULE_KIND)
|
|
5734
|
+
return projectType === BUSINESS_RULE_PROJECT_TYPE;
|
|
5735
|
+
if ((resource.kind ?? "").toLowerCase() === APP_KIND) {
|
|
5736
|
+
const appType = (resource.type ?? "").toLowerCase();
|
|
5737
|
+
if (appType === "" || LOW_CODE_APP_TYPES.has(appType))
|
|
5738
|
+
return projectType === LOW_CODE_APP_PROJECT_TYPE;
|
|
5739
|
+
return CODED_APP_TYPES.has(appType) && projectType === CODED_APP_PROJECT_TYPE;
|
|
5740
|
+
}
|
|
5741
|
+
const resourceType = (resource.type ?? "").toLowerCase();
|
|
5742
|
+
const processType = resourceType === "" ? DEFAULT_PROCESS_PROJECT_TYPE : resourceType;
|
|
5743
|
+
return !KNOWN_PROCESS_PROJECT_TYPES.has(processType) || projectType === processType;
|
|
5744
|
+
}
|
|
5745
|
+
|
|
5746
|
+
// ../../node_modules/@uipath/resource-builder-sdk/dist/services/overwrites/models.js
|
|
5747
|
+
var models_ValidationSeverity = /* @__PURE__ */ function(ValidationSeverity) {
|
|
5748
|
+
ValidationSeverity["Warning"] = "Warning";
|
|
5749
|
+
ValidationSeverity["Critical"] = "Critical";
|
|
5750
|
+
return ValidationSeverity;
|
|
5751
|
+
}({});
|
|
5752
|
+
var models_OverwriteType = /* @__PURE__ */ function(OverwriteType) {
|
|
5753
|
+
OverwriteType["Install"] = "Install";
|
|
5754
|
+
OverwriteType["Reference"] = "Reference";
|
|
5755
|
+
return OverwriteType;
|
|
5756
|
+
}({});
|
|
5757
|
+
function createLocalizableMessage(key, ...args) {
|
|
5758
|
+
return {
|
|
5759
|
+
key,
|
|
5760
|
+
args: args.length > 0 ? args : undefined
|
|
5761
|
+
};
|
|
5762
|
+
}
|
|
5763
|
+
function createMissingRcsResources(missingKeys, error) {
|
|
5764
|
+
return {
|
|
5765
|
+
missingResourceKeys: missingKeys instanceof Set ? missingKeys : new Set(missingKeys),
|
|
5766
|
+
error
|
|
5767
|
+
};
|
|
5768
|
+
}
|
|
5769
|
+
function setValidationError(errors, resourceKey, dto) {
|
|
5770
|
+
const error = errors.get(resourceKey);
|
|
5771
|
+
if (error)
|
|
5772
|
+
dto.validationError = error;
|
|
5773
|
+
}
|
|
5774
|
+
var DebugOverwritesConstants = {
|
|
5775
|
+
ResourceOverwritesFileName: "debug_overwrites.json",
|
|
5776
|
+
CurrentOverwritesDocVersion: "1.0"
|
|
5777
|
+
};
|
|
5778
|
+
|
|
5649
5779
|
// ../../node_modules/@uipath/resource-builder-sdk/dist/bindings/binding-overwrites-handler.js
|
|
5780
|
+
var FOLDER_KEY_RESOURCE_TYPES = new Set([
|
|
5781
|
+
models_BindingsResourceType.Entity,
|
|
5782
|
+
models_BindingsResourceType.Asset,
|
|
5783
|
+
models_BindingsResourceType.Queue,
|
|
5784
|
+
models_BindingsResourceType.Process
|
|
5785
|
+
]);
|
|
5786
|
+
|
|
5650
5787
|
class BindingOverwritesHandler {
|
|
5651
5788
|
async handleAsync(request, cancellationToken) {
|
|
5652
5789
|
if (request instanceof BindingOverwritesValidationCommand)
|
|
@@ -5661,6 +5798,10 @@ class BindingOverwritesHandler {
|
|
|
5661
5798
|
if (bindingResources.length === 0)
|
|
5662
5799
|
return {};
|
|
5663
5800
|
const result = {};
|
|
5801
|
+
const solution = await request.context.loadAsync(cancellationToken);
|
|
5802
|
+
const jitDebugProjectTypes = this.featureFlagProvider.getString(JIT_DEBUG_PROJECT_TYPES_FEATURE_FLAG, "");
|
|
5803
|
+
const emptyFolderPathForArtefacts = solutionSupportsJitDebug(solution, jitDebugProjectTypes);
|
|
5804
|
+
this.logger.info(`Binding overwrites for solution ${request.context.path}: JIT debug ${emptyFolderPathForArtefacts ? "on" : "off"} (FE.JitDebugProjectTypes = '${jitDebugProjectTypes}')`);
|
|
5664
5805
|
const resourceOverwrites = await this.resourceOverwritesService.getResourceOverwritesAsync(request.context, cancellationToken);
|
|
5665
5806
|
for (const bindingResource of bindingResources) {
|
|
5666
5807
|
const resourceOverwrite = resourceOverwrites.get(bindingResource.resourceKey.toLowerCase());
|
|
@@ -5673,13 +5814,15 @@ class BindingOverwritesHandler {
|
|
|
5673
5814
|
[BindingsKnownKeys.FolderKeyPropertyName]: resourceOverwrite.folderKey ?? ""
|
|
5674
5815
|
};
|
|
5675
5816
|
else {
|
|
5676
|
-
const
|
|
5817
|
+
const resolvesInDebugFolder = emptyFolderPathForArtefacts && bindingResource.isArtefactResource;
|
|
5818
|
+
const folderPath = resolvesInDebugFolder ? "" : resourceOverwrite.folderFullyQualifiedName ?? "";
|
|
5819
|
+
const name = resourceOverwrite.type === models_OverwriteType.Install && bindingResource.isArtefactResource && bindingResource.resourceName ? bindingResource.resourceName : resourceOverwrite.resourceName;
|
|
5677
5820
|
overwrite = {
|
|
5678
5821
|
[BindingsKnownKeys.FolderPathPropertyName]: folderPath,
|
|
5679
|
-
[BindingsKnownKeys.NamePropertyName]:
|
|
5822
|
+
[BindingsKnownKeys.NamePropertyName]: name
|
|
5680
5823
|
};
|
|
5681
|
-
if (bindingResource.binding.resourceType
|
|
5682
|
-
overwrite[BindingsKnownKeys.FolderKeyPropertyName] = resourceOverwrite.folderKey ?? "";
|
|
5824
|
+
if (FOLDER_KEY_RESOURCE_TYPES.has(bindingResource.binding.resourceType))
|
|
5825
|
+
overwrite[BindingsKnownKeys.FolderKeyPropertyName] = resolvesInDebugFolder ? "" : resourceOverwrite.folderKey ?? "";
|
|
5683
5826
|
}
|
|
5684
5827
|
const key = getOverrideKey(bindingResource.binding);
|
|
5685
5828
|
result[key] = overwrite;
|
|
@@ -5695,9 +5838,10 @@ class BindingOverwritesHandler {
|
|
|
5695
5838
|
throw new BadRequestException("Bindings.ValidationFailed", `Binding validation failed: ${failureMessages}`);
|
|
5696
5839
|
}
|
|
5697
5840
|
}
|
|
5698
|
-
constructor(mediator, resourceOverwritesService, loggerFactory) {
|
|
5841
|
+
constructor(mediator, resourceOverwritesService, loggerFactory, featureFlagProvider) {
|
|
5699
5842
|
this.mediator = mediator;
|
|
5700
5843
|
this.resourceOverwritesService = resourceOverwritesService;
|
|
5844
|
+
this.featureFlagProvider = featureFlagProvider;
|
|
5701
5845
|
this.logger = loggerFactory.create("BindingOverwritesHandler");
|
|
5702
5846
|
}
|
|
5703
5847
|
}
|
|
@@ -5737,7 +5881,8 @@ class BindingOverwritesMappingRequestHandler {
|
|
|
5737
5881
|
binding: bindingsResource,
|
|
5738
5882
|
resourceKey: resource.key,
|
|
5739
5883
|
isArtefactResource: resource.projectKey != null,
|
|
5740
|
-
isCodedApp: bindingsResource.resourceType === models_BindingsResourceType.App && isCodedAppType(resource.type)
|
|
5884
|
+
isCodedApp: bindingsResource.resourceType === models_BindingsResourceType.App && isCodedAppType(resource.type),
|
|
5885
|
+
resourceName: resource.name
|
|
5741
5886
|
});
|
|
5742
5887
|
} else {
|
|
5743
5888
|
this.logger.error(`Solution does not contain binding resource of type ${models_BindingsResourceType[bindingsResource.resourceType]}.`);
|
|
@@ -5860,6 +6005,9 @@ class SolutionContext {
|
|
|
5860
6005
|
signal = forceOrSignal;
|
|
5861
6006
|
return this.doWithLockAsync((token) => this.internalLoadAsync(force, token), signal);
|
|
5862
6007
|
}
|
|
6008
|
+
async loadKindsAsync(kinds, cancellationToken) {
|
|
6009
|
+
return this.doWithLockAsync((token) => this.isReadOnly && this._definition === null && this._definitionProvider.readKindsAsync ? this._definitionProvider.readKindsAsync(this, kinds, token) : this.internalLoadAsync(false, token), cancellationToken);
|
|
6010
|
+
}
|
|
5863
6011
|
async getSolutionDefinitionAsync(cancellationToken) {
|
|
5864
6012
|
return this._definitionProvider.readAsync(this, cancellationToken);
|
|
5865
6013
|
}
|
|
@@ -5877,20 +6025,17 @@ class SolutionContext {
|
|
|
5877
6025
|
this.validateResourceDependencies(this._definition);
|
|
5878
6026
|
await this.deleteSavedFilesAsync(filesToDelete, token);
|
|
5879
6027
|
await this.internalSaveChanges(this._definition, token);
|
|
5880
|
-
this._definition = null;
|
|
5881
6028
|
}, signal);
|
|
5882
6029
|
else
|
|
5883
6030
|
await this.doWithLockAsync(async (token) => {
|
|
5884
6031
|
this.validateResourceDependencies(this._definition);
|
|
5885
6032
|
await this.internalSaveChanges(this._definition, token);
|
|
5886
|
-
this._definition = null;
|
|
5887
6033
|
}, signal);
|
|
5888
6034
|
}
|
|
5889
6035
|
async forceSaveChangesAsync(cancellationToken) {
|
|
5890
6036
|
await this.doWithLockAsync(async (token) => {
|
|
5891
6037
|
this.validateResourceDependencies(this._definition);
|
|
5892
6038
|
await this.internalSaveChanges(this._definition, token);
|
|
5893
|
-
this._definition = null;
|
|
5894
6039
|
}, cancellationToken);
|
|
5895
6040
|
}
|
|
5896
6041
|
async saveAsync(solution, cancellationToken) {
|
|
@@ -5901,7 +6046,7 @@ class SolutionContext {
|
|
|
5901
6046
|
this.validateResourceDependencies(solution);
|
|
5902
6047
|
await this.internalLoadAsync(false, token);
|
|
5903
6048
|
await this.internalSaveChanges(solution, token);
|
|
5904
|
-
this._definition =
|
|
6049
|
+
this._definition = solution;
|
|
5905
6050
|
}, cancellationToken);
|
|
5906
6051
|
}
|
|
5907
6052
|
toString() {
|
|
@@ -6982,39 +7127,6 @@ SettingsRequestHandler = _ts_decorate4([
|
|
|
6982
7127
|
])
|
|
6983
7128
|
], SettingsRequestHandler);
|
|
6984
7129
|
|
|
6985
|
-
// ../../node_modules/@uipath/resource-builder-sdk/dist/services/overwrites/models.js
|
|
6986
|
-
var models_ValidationSeverity = /* @__PURE__ */ function(ValidationSeverity) {
|
|
6987
|
-
ValidationSeverity["Warning"] = "Warning";
|
|
6988
|
-
ValidationSeverity["Critical"] = "Critical";
|
|
6989
|
-
return ValidationSeverity;
|
|
6990
|
-
}({});
|
|
6991
|
-
var models_OverwriteType = /* @__PURE__ */ function(OverwriteType) {
|
|
6992
|
-
OverwriteType["Install"] = "Install";
|
|
6993
|
-
OverwriteType["Reference"] = "Reference";
|
|
6994
|
-
return OverwriteType;
|
|
6995
|
-
}({});
|
|
6996
|
-
function createLocalizableMessage(key, ...args) {
|
|
6997
|
-
return {
|
|
6998
|
-
key,
|
|
6999
|
-
args: args.length > 0 ? args : undefined
|
|
7000
|
-
};
|
|
7001
|
-
}
|
|
7002
|
-
function createMissingRcsResources(missingKeys, error) {
|
|
7003
|
-
return {
|
|
7004
|
-
missingResourceKeys: missingKeys instanceof Set ? missingKeys : new Set(missingKeys),
|
|
7005
|
-
error
|
|
7006
|
-
};
|
|
7007
|
-
}
|
|
7008
|
-
function setValidationError(errors, resourceKey, dto) {
|
|
7009
|
-
const error = errors.get(resourceKey);
|
|
7010
|
-
if (error)
|
|
7011
|
-
dto.validationError = error;
|
|
7012
|
-
}
|
|
7013
|
-
var DebugOverwritesConstants = {
|
|
7014
|
-
ResourceOverwritesFileName: "debug_overwrites.json",
|
|
7015
|
-
CurrentOverwritesDocVersion: "1.0"
|
|
7016
|
-
};
|
|
7017
|
-
|
|
7018
7130
|
// ../../node_modules/@uipath/resource-builder-sdk/dist/mappings/resource-subtype-mapper.js
|
|
7019
7131
|
var solutionsSubtypesMap = {
|
|
7020
7132
|
Text: "stringAsset",
|
|
@@ -8355,8 +8467,8 @@ class SolutionDefinitionHelper {
|
|
|
8355
8467
|
if (references.length === 0)
|
|
8356
8468
|
continue;
|
|
8357
8469
|
const referenceKind = refProp["referenceKind"];
|
|
8358
|
-
const
|
|
8359
|
-
const filtered = references.filter((r) => !
|
|
8470
|
+
const matches2 = (ref) => ref.name != null && invariantEquals(resource.name, ref.name) && referenceKind != null && invariantEquals(referenceKind, resource.kind);
|
|
8471
|
+
const filtered = references.filter((r) => !matches2(r));
|
|
8360
8472
|
if (filtered.length !== references.length)
|
|
8361
8473
|
spec[refProp.property] = isSingleReferenceProperty(refProp) ? filtered[0] ?? null : filtered;
|
|
8362
8474
|
}
|
|
@@ -8503,7 +8615,9 @@ class ResourcesSearchRequestHandler {
|
|
|
8503
8615
|
async getSolutionResourcesAsync(request, cancellationToken) {
|
|
8504
8616
|
if (request.pageSize <= 0 || !request.includeSolutionResources)
|
|
8505
8617
|
return null;
|
|
8506
|
-
const solution = await request.context.
|
|
8618
|
+
const solution = await (request.context.loadKindsAsync?.([
|
|
8619
|
+
request.kind
|
|
8620
|
+
], cancellationToken) ?? request.context.loadAsync(cancellationToken));
|
|
8507
8621
|
let resources = solution.resources.filter((x) => !x.projectKey || request.projectKey && x.projectKey !== request.projectKey).filter((x) => x.kind.toLowerCase() === request.kind.toLowerCase()).filter((x) => !request.types || request.types.some((t) => t.toLowerCase() === x.type?.toLowerCase())).filter((x) => !request.searchTerm || x.name.toLowerCase().includes(request.searchTerm.toLowerCase()));
|
|
8508
8622
|
if (request.cursor?.pageDirection === internal_InternalPageDirection.Previous) {
|
|
8509
8623
|
if (request.cursor.name) {
|
|
@@ -10002,6 +10116,7 @@ class GenerateArtefactResourcesCommandHandler {
|
|
|
10002
10116
|
apiVersion: metadataVersion.version.uri,
|
|
10003
10117
|
name: command.projectName,
|
|
10004
10118
|
projectKey: command.projectKey,
|
|
10119
|
+
isArtefactResource: !!command.projectKey,
|
|
10005
10120
|
folders: [],
|
|
10006
10121
|
files: []
|
|
10007
10122
|
};
|
|
@@ -13691,7 +13806,7 @@ class ProjectCreateCommandHandler {
|
|
|
13691
13806
|
const solution = await command.context.loadAsync(cancellationToken);
|
|
13692
13807
|
const resourceIdentifiers = new Set(this.projectConfigurationReader.getTemplateResourcesByType(command.type, command.subType, true).map((r) => JSON.stringify(r)));
|
|
13693
13808
|
const projectResources = solution.resources.filter((x) => x.projectKey === command.projectKey);
|
|
13694
|
-
const duplicateProject = solution.resources.find((r) => r.
|
|
13809
|
+
const duplicateProject = solution.resources.find((r) => r.projectKey !== undefined && r.projectKey !== command.projectKey && r.name.toLowerCase() === command.name.toLowerCase());
|
|
13695
13810
|
if (duplicateProject) {
|
|
13696
13811
|
this.logger.error("Project name already exists", undefined, {
|
|
13697
13812
|
projectName: command.name,
|
|
@@ -13700,15 +13815,16 @@ class ProjectCreateCommandHandler {
|
|
|
13700
13815
|
throw new BadRequestException("Project.DuplicateProjectName", "Project name already exists");
|
|
13701
13816
|
}
|
|
13702
13817
|
if (projectResources.length === 0)
|
|
13703
|
-
await this.
|
|
13818
|
+
this.addArtefacts(command, solution, await this.generateAndValidateArtefacts(command, solution, cancellationToken));
|
|
13704
13819
|
else {
|
|
13705
13820
|
const existingResourceIdentifiers = new Set(projectResources.map((x) => JSON.stringify(toResourceIdentifier2(x))));
|
|
13706
13821
|
const needsRegeneration = existingResourceIdentifiers.size !== resourceIdentifiers.size || [
|
|
13707
13822
|
...resourceIdentifiers
|
|
13708
13823
|
].some((id) => !existingResourceIdentifiers.has(id));
|
|
13709
13824
|
if (needsRegeneration) {
|
|
13825
|
+
const artefacts = await this.generateAndValidateArtefacts(command, solution, cancellationToken);
|
|
13710
13826
|
await this.removeExistingProjectResources(command, cancellationToken);
|
|
13711
|
-
|
|
13827
|
+
this.addArtefacts(command, solution, artefacts);
|
|
13712
13828
|
} else if (projectResources.some((x) => x.name !== command.name))
|
|
13713
13829
|
await this.mediator.sendCommandAsync(new ProjectEditCommand(command.context, command.projectKey, {
|
|
13714
13830
|
name: command.name,
|
|
@@ -13718,13 +13834,13 @@ class ProjectCreateCommandHandler {
|
|
|
13718
13834
|
}
|
|
13719
13835
|
await command.context.saveChangesAsync(cancellationToken);
|
|
13720
13836
|
}
|
|
13721
|
-
async
|
|
13837
|
+
async generateAndValidateArtefacts(command, solution, cancellationToken) {
|
|
13722
13838
|
this.logger.info("Generate artefact resources for project", {
|
|
13723
13839
|
projectName: command.name,
|
|
13724
13840
|
projectKey: command.projectKey
|
|
13725
13841
|
});
|
|
13726
13842
|
const artefactResources = await this.mediator.sendCommandAsync(new GenerateArtefactResourcesCommand(command.context, command.name, command.type, command.projectKey, command.subType), cancellationToken);
|
|
13727
|
-
const existingConflictResource = solution.resources.find((r) =>
|
|
13843
|
+
const existingConflictResource = solution.resources.find((r) => r.projectKey === undefined && r.name.toLowerCase() === command.name.toLowerCase() && artefactResources.some((pr) => r.kind.toLowerCase() === pr.kind.toLowerCase()));
|
|
13728
13844
|
if (existingConflictResource) {
|
|
13729
13845
|
this.logger.error("Resource name conflict", undefined, {
|
|
13730
13846
|
context: command.context,
|
|
@@ -13733,6 +13849,23 @@ class ProjectCreateCommandHandler {
|
|
|
13733
13849
|
});
|
|
13734
13850
|
throw new BadRequestException("Resources.DuplicateResourceName", `Solution already contains a ${existingConflictResource.kind} resource named "${existingConflictResource.name}"`);
|
|
13735
13851
|
}
|
|
13852
|
+
for (const artefact of artefactResources) {
|
|
13853
|
+
if (artefact.kind.toLowerCase() !== WellKnownProjectType.Process.toLowerCase())
|
|
13854
|
+
continue;
|
|
13855
|
+
const packageName = resolvePackageNameAfterRename(artefact, command.solutionName, command.name, command.solutionName);
|
|
13856
|
+
const conflictingProject = findPackageNameConflict(solution, command.projectKey, command.solutionName, packageName);
|
|
13857
|
+
if (conflictingProject) {
|
|
13858
|
+
this.logger.error("Package name conflict", undefined, {
|
|
13859
|
+
context: command.context,
|
|
13860
|
+
packageName,
|
|
13861
|
+
conflictingProject: conflictingProject.name
|
|
13862
|
+
});
|
|
13863
|
+
throw new BadRequestException(ErrorCodes.Resources.DuplicatePackageName, `The name '${command.name}' would publish under the same package name as project '${conflictingProject.name}': '${packageName}'. Long names are shortened when the package name is composed, so choose a name that differs earlier.`);
|
|
13864
|
+
}
|
|
13865
|
+
}
|
|
13866
|
+
return artefactResources;
|
|
13867
|
+
}
|
|
13868
|
+
addArtefacts(command, solution, artefactResources) {
|
|
13736
13869
|
for (const artefact of artefactResources) {
|
|
13737
13870
|
if (artefact.kind.toLowerCase() === WellKnownProjectType.Process.toLowerCase())
|
|
13738
13871
|
changePackageName(artefact, command.solutionName, command.name, command.solutionName);
|
|
@@ -13773,18 +13906,32 @@ class ProjectEditCommandHandler {
|
|
|
13773
13906
|
const newProjectName = command.projectDetails.name.trim();
|
|
13774
13907
|
const projectDescription = command.projectDetails.description;
|
|
13775
13908
|
const solutionName = command.projectDetails.solutionName;
|
|
13776
|
-
const duplicateProject = solution.resources.find((r) => r.
|
|
13909
|
+
const duplicateProject = solution.resources.find((r) => r.projectKey !== undefined && r.projectKey !== command.projectKey && r.name.toLowerCase() === newProjectName.toLowerCase());
|
|
13777
13910
|
if (duplicateProject) {
|
|
13778
13911
|
this.logger.error("Project name already exists");
|
|
13779
13912
|
throw new BadRequestException(ErrorCodes.Resources.DuplicateResourceName, "Project name already exists");
|
|
13780
13913
|
}
|
|
13781
|
-
const existingConflictResource = solution.resources.find((r) =>
|
|
13914
|
+
const existingConflictResource = solution.resources.find((r) => r.projectKey === undefined && r.name.toLowerCase() === newProjectName.toLowerCase() && projectResources.some((pr) => r.kind.toLowerCase() === pr.kind.toLowerCase()));
|
|
13782
13915
|
if (existingConflictResource) {
|
|
13783
13916
|
this.logger.error("Solution already contains resource of kind with same name");
|
|
13784
13917
|
throw new BadRequestException(ErrorCodes.Resources.DuplicateResourceName, `Solution already contains a ${existingConflictResource.kind} resource named "${existingConflictResource.name}"`);
|
|
13785
13918
|
}
|
|
13786
13919
|
const firstProjectResource = projectResources[0];
|
|
13787
13920
|
const oldProjectName = firstProjectResource ? firstProjectResource.name : "";
|
|
13921
|
+
for (const resource of projectResources) {
|
|
13922
|
+
if (resource.kind.toLowerCase() !== WellKnownProjectType.Process.toLowerCase())
|
|
13923
|
+
continue;
|
|
13924
|
+
const packageName = resolvePackageNameAfterRename(resource, solutionName, newProjectName, solutionName, oldProjectName);
|
|
13925
|
+
const conflictingProject = findPackageNameConflict(solution, command.projectKey, solutionName, packageName);
|
|
13926
|
+
if (conflictingProject) {
|
|
13927
|
+
this.logger.error("Package name conflict", undefined, {
|
|
13928
|
+
context: command.context,
|
|
13929
|
+
packageName,
|
|
13930
|
+
conflictingProject: conflictingProject.name
|
|
13931
|
+
});
|
|
13932
|
+
throw new BadRequestException(ErrorCodes.Resources.DuplicatePackageName, `The name '${newProjectName}' would publish under the same package name as project '${conflictingProject.name}': '${packageName}'. Long names are shortened when the package name is composed, so choose a name that differs earlier.`);
|
|
13933
|
+
}
|
|
13934
|
+
}
|
|
13788
13935
|
const dependencyMapper = new Map;
|
|
13789
13936
|
for (const resource of projectResources) {
|
|
13790
13937
|
const depKey = `${oldProjectName.toLowerCase()}|${resource.kind.toLowerCase()}`;
|
|
@@ -16019,7 +16166,8 @@ function registerHandlers(diContainer) {
|
|
|
16019
16166
|
const mediator = c.resolve(ServiceTokens.Mediator);
|
|
16020
16167
|
const resourceOverwritesService = c.resolve(Tokens.IResourceOverwritesService);
|
|
16021
16168
|
const loggerFactory = c.resolve(ServiceTokens.LoggerFactory);
|
|
16022
|
-
|
|
16169
|
+
const featureFlagProvider = c.resolve(ServiceTokens.FeatureFlagProvider);
|
|
16170
|
+
return new BindingOverwritesHandler(mediator, resourceOverwritesService, loggerFactory, featureFlagProvider);
|
|
16023
16171
|
}
|
|
16024
16172
|
});
|
|
16025
16173
|
diContainer.register(createCommandHandlerToken(BindingOverwritesValidationCommand.name), {
|
|
@@ -16027,7 +16175,8 @@ function registerHandlers(diContainer) {
|
|
|
16027
16175
|
const mediator = c.resolve(ServiceTokens.Mediator);
|
|
16028
16176
|
const resourceOverwritesService = c.resolve(Tokens.IResourceOverwritesService);
|
|
16029
16177
|
const loggerFactory = c.resolve(ServiceTokens.LoggerFactory);
|
|
16030
|
-
|
|
16178
|
+
const featureFlagProvider = c.resolve(ServiceTokens.FeatureFlagProvider);
|
|
16179
|
+
return new BindingOverwritesHandler(mediator, resourceOverwritesService, loggerFactory, featureFlagProvider);
|
|
16031
16180
|
}
|
|
16032
16181
|
});
|
|
16033
16182
|
diContainer.register(createRequestHandlerToken(BindingOverwritesMappingRequest.name), {
|
|
@@ -19130,12 +19279,12 @@ async function findResourceByKeyInRcs(builder, kind, expectedKey, folderPath, pr
|
|
|
19130
19279
|
return;
|
|
19131
19280
|
}
|
|
19132
19281
|
async function searchRcsResources(builder, kind, name) {
|
|
19133
|
-
const [searchError,
|
|
19282
|
+
const [searchError, matches2] = await catchError(searchRcsResourcesStrict(builder, kind, name));
|
|
19134
19283
|
if (searchError) {
|
|
19135
19284
|
logger.warn(`Failed to search ${kind} resources in RCS: ${searchError.message}`);
|
|
19136
19285
|
return [];
|
|
19137
19286
|
}
|
|
19138
|
-
return
|
|
19287
|
+
return matches2;
|
|
19139
19288
|
}
|
|
19140
19289
|
async function searchRcsResourcesStrict(builder, kind, name) {
|
|
19141
19290
|
let pageCursor;
|
|
@@ -19143,8 +19292,8 @@ async function searchRcsResourcesStrict(builder, kind, name) {
|
|
|
19143
19292
|
do {
|
|
19144
19293
|
const result = await builder.searchResourcesAsync(kind, undefined, name, pageCursor, 50, undefined, false);
|
|
19145
19294
|
for (const folderResources of result.availableResources) {
|
|
19146
|
-
const
|
|
19147
|
-
for (const match of
|
|
19295
|
+
const matches2 = folderResources.resources.filter((r) => r.name.toLowerCase() === name.toLowerCase());
|
|
19296
|
+
for (const match of matches2) {
|
|
19148
19297
|
allMatches.push({
|
|
19149
19298
|
key: match.key,
|
|
19150
19299
|
name: match.name,
|
|
@@ -19749,4 +19898,4 @@ export {
|
|
|
19749
19898
|
writeSolutionFile
|
|
19750
19899
|
};
|
|
19751
19900
|
|
|
19752
|
-
//# debugId=
|
|
19901
|
+
//# debugId=BF062F2FBF3577CC64756E2164756E21
|
package/dist/index.js
CHANGED
|
@@ -21,6 +21,10 @@ var JsonSerializerNames = {
|
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
// ../../node_modules/@uipath/resource-builder-sdk/dist/serialization/json-serializer.js
|
|
24
|
+
var VERBATIM_VALUE_PROPERTIES = new Set([
|
|
25
|
+
"spec"
|
|
26
|
+
]);
|
|
27
|
+
|
|
24
28
|
class JsonSerializer {
|
|
25
29
|
serialize(value) {
|
|
26
30
|
if (value == null)
|
|
@@ -110,7 +114,9 @@ class JsonSerializer {
|
|
|
110
114
|
const result = {};
|
|
111
115
|
const currentClassName = obj.constructor?.name !== "Object" ? obj.constructor.name : className;
|
|
112
116
|
for (const [key, val] of Object.entries(obj))
|
|
113
|
-
if (
|
|
117
|
+
if (VERBATIM_VALUE_PROPERTIES.has(key))
|
|
118
|
+
result[key] = val;
|
|
119
|
+
else if (typeof val == "string")
|
|
114
120
|
result[key] = this.tryConvertEnumStringToCamelCase(val, currentClassName, key);
|
|
115
121
|
else if (Array.isArray(val))
|
|
116
122
|
result[key] = val.map((item) => {
|
|
@@ -339,4 +345,4 @@ class StreamSerializer {
|
|
|
339
345
|
}
|
|
340
346
|
export { JsonSerializerNames, JsonSerializer, CAMEL_CASE_ENUM_PROPERTIES, SHARED_CORE_ABSTRACTIONS_PASCAL_CASE_PROPERTIES, RESOURCE_BUILDER_PASCAL_CASE_PROPERTIES, PASCAL_CASE_ENUM_PROPERTIES, JsonSerializerFactory, JsonSerializerProxy, StreamSerializer };
|
|
341
347
|
|
|
342
|
-
//# debugId=
|
|
348
|
+
//# debugId=C9C96784831F2C9F64756E2164756E21
|
|
@@ -39,7 +39,7 @@ var package_default = {
|
|
|
39
39
|
name: "@uipath/integrationservice-tool",
|
|
40
40
|
author: "UiPath",
|
|
41
41
|
license: "SEE LICENSE IN LICENSE.txt",
|
|
42
|
-
version: "1.205.0-preview.
|
|
42
|
+
version: "1.205.0-preview.293",
|
|
43
43
|
description: "Manage Integration Service connectors, connections, and triggers.",
|
|
44
44
|
private: false,
|
|
45
45
|
repository: {
|
|
@@ -616,7 +616,7 @@ var package_default2 = {
|
|
|
616
616
|
name: "@uipath/integrationservice-sdk",
|
|
617
617
|
author: "UiPath",
|
|
618
618
|
license: "SEE LICENSE IN LICENSE.txt",
|
|
619
|
-
version: "1.205.0-preview.
|
|
619
|
+
version: "1.205.0-preview.293",
|
|
620
620
|
repository: {
|
|
621
621
|
type: "git",
|
|
622
622
|
url: "https://github.com/UiPath/cli.git",
|
|
@@ -6935,7 +6935,7 @@ function createSolutionResourceConfigurationsProvider(solutionDir, namesByKey =
|
|
|
6935
6935
|
async function openEngine() {
|
|
6936
6936
|
const { getSolutionAuthContext } = await import("./solution-auth-gyqtxa4n.js");
|
|
6937
6937
|
await getSolutionAuthContext({});
|
|
6938
|
-
const resources = await import("./index-
|
|
6938
|
+
const resources = await import("./index-grh5z9h5.js");
|
|
6939
6939
|
return {
|
|
6940
6940
|
resources,
|
|
6941
6941
|
services: await resources.createResourceBuilderServices()
|
|
@@ -22210,7 +22210,7 @@ async function resolveSolutionResources(solutionFolder, bindings, { tenant } = {
|
|
|
22210
22210
|
const { getSolutionAuthContext } = await import("./solution-auth-gyqtxa4n.js");
|
|
22211
22211
|
const session = await getSolutionAuthContext({});
|
|
22212
22212
|
assertSessionTenant(tenant, session.tenantName);
|
|
22213
|
-
const engine = await import("./index-
|
|
22213
|
+
const engine = await import("./index-grh5z9h5.js");
|
|
22214
22214
|
const services = await engine.createResourceBuilderServices();
|
|
22215
22215
|
const builder = solutionDir ? await services.getSolutionBuilder(solutionDir, true) : undefined;
|
|
22216
22216
|
const ctx = { engine, services, builder, solutionDir };
|
|
@@ -23664,4 +23664,4 @@ var registerCommands = async (program) => {
|
|
|
23664
23664
|
|
|
23665
23665
|
export { metadata, registerCommands };
|
|
23666
23666
|
|
|
23667
|
-
//# debugId=
|
|
23667
|
+
//# debugId=AA07C93DDBF7BE2C64756E2164756E21
|