@uipath/project-packager 1.1.4
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/index.js +781 -0
- package/dist/index.js.map +1 -0
- package/dist/node.js +915 -0
- package/dist/node.js.map +1 -0
- package/dist/src/base-node-packager-factory.d.ts +35 -0
- package/dist/src/i18n/index.d.ts +7 -0
- package/dist/src/i18n/locales/en.d.ts +39 -0
- package/dist/src/index.d.ts +29 -0
- package/dist/src/models/packager-config.d.ts +16 -0
- package/dist/src/models/packager-parameters.d.ts +113 -0
- package/dist/src/models/project-build-options.d.ts +6 -0
- package/dist/src/models/project-models.d.ts +26 -0
- package/dist/src/models/project-pack-options.d.ts +21 -0
- package/dist/src/models/project-restore-options.d.ts +6 -0
- package/dist/src/models/project-validate-options.d.ts +11 -0
- package/dist/src/node-project-packager-factory.d.ts +22 -0
- package/dist/src/node.d.ts +32 -0
- package/dist/src/services/pack-service.d.ts +26 -0
- package/dist/src/services/package-sign-service.d.ts +22 -0
- package/dist/src/services/packager-parameters-validator.d.ts +26 -0
- package/dist/src/services/project-build-options-validator.d.ts +14 -0
- package/dist/src/services/project-loader.d.ts +24 -0
- package/dist/src/services/project-pack-options-builder.d.ts +19 -0
- package/dist/src/services/project-pack-options-validator.d.ts +15 -0
- package/dist/src/services/project-packager.d.ts +146 -0
- package/dist/src/services/project-tool-executor.d.ts +36 -0
- package/dist/src/services/project-validate-options-validator.d.ts +14 -0
- package/dist/src/services/tool-logger.d.ts +26 -0
- package/dist/src/services/tools-factory.d.ts +29 -0
- package/dist/src/telemetry-names.d.ts +11 -0
- package/dist/tests/pack-service.test.d.ts +1 -0
- package/dist/tests/project-loader.test.d.ts +1 -0
- package/dist/tests/project-packager-e2e.test.d.ts +7 -0
- package/dist/tests/project-packager.test.d.ts +1 -0
- package/dist/tests/project-tool-executor.test.d.ts +1 -0
- package/dist/tests/tools-factory-repository.test.d.ts +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\de.json","webpack://projectpackager/./src/i18n/locales/en.ts","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\es.json","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\es-MX.json","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\fr.json","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\ja.json","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\ko.json","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\pt.json","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\pt-BR.json","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\ro.json","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\ru.json","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\tr.json","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\zh-CN.json","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\zh-TW.json","webpack://projectpackager/json|D:\\GitHub\\Alpha\\Studio.Common\\packager\\uipath-projectpackager\\src\\i18n\\locales\\zu.json","webpack://projectpackager/./src/i18n/index.ts","webpack://projectpackager/./src/models/packager-parameters.ts","webpack://projectpackager/./src/models/project-restore-options.ts","webpack://projectpackager/./src/models/project-validate-options.ts","webpack://projectpackager/./src/models/project-build-options.ts","webpack://projectpackager/./src/models/project-pack-options.ts","webpack://projectpackager/./src/services/pack-service.ts","webpack://projectpackager/./src/services/packager-parameters-validator.ts","webpack://projectpackager/./src/services/project-build-options-validator.ts","webpack://projectpackager/./src/services/project-loader.ts","webpack://projectpackager/./src/telemetry-names.ts","webpack://projectpackager/./src/services/project-pack-options-builder.ts","webpack://projectpackager/./src/services/project-pack-options-validator.ts","webpack://projectpackager/./src/services/project-tool-executor.ts","webpack://projectpackager/./src/services/project-validate-options-validator.ts","webpack://projectpackager/./src/services/tool-logger.ts","webpack://projectpackager/./src/services/tools-factory.ts","webpack://projectpackager/./src/services/project-packager.ts"],"sourcesContent":["var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","/**\n * English translations for projectpackager package.\n * These translations are registered alongside core translations via I18nManager.\n */\n\nexport const en = {\n solutionpackager: {\n projectLoader: {\n errors: {\n pathRequired: \"Project directory path is required\",\n noProjectFile:\n \"No {projectFile} or {manifestFile} found in directory: {path}\",\n readFailed: \"Failed to read project file: {path}\",\n invalidProject:\n \"Invalid project file: {path}. Missing ProjectType field.\",\n },\n },\n validator: {\n errors: {\n destinationNotDefined: \"Destination path is not defined\",\n governanceRequired:\n \"Governance file path is required when governance file type is not Default\",\n governanceFileInfo: \"Unable to get file information: {path}\",\n governanceInvalidFile:\n \"Governance file path is not a valid file: {path}\",\n },\n },\n packager: {\n errors: {\n failedToGetStreams:\n \"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\n failedToReadPackage: \"Failed to read package file: {path}\",\n },\n },\n signing: {\n errors: {\n dotnetNotAvailable:\n \"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\",\n },\n info: {\n dotnetNotAvailable:\n \"dotnet CLI is not available. Cannot sign package.\",\n },\n },\n },\n} as const;\n\nexport type TranslationKeys = typeof en;\n","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","var __rspack_ns_object = JSON.parse('{\"solutionpackager\":{\"projectLoader\":{\"errors\":{\"pathRequired\":\"Project directory path is required\",\"noProjectFile\":\"No {projectFile} or {manifestFile} found in directory: {path}\",\"readFailed\":\"Failed to read project file: {path}\",\"invalidProject\":\"Invalid project file: {path}. Missing ProjectType field.\"}},\"validator\":{\"errors\":{\"destinationNotDefined\":\"Destination path is not defined\",\"governanceRequired\":\"Governance file path is required when governance file type is not Default\",\"governanceFileInfo\":\"Unable to get file information: {path}\",\"governanceInvalidFile\":\"Governance file path is not a valid file: {path}\"}},\"packager\":{\"errors\":{\"failedToGetStreams\":\"Cannot get package streams from failed result. Error code: {errorCode}, message: {message}\",\"failedToReadPackage\":\"Failed to read package file: {path}\"}},\"signing\":{\"errors\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Package signing requires dotnet CLI to be installed.\"},\"info\":{\"dotnetNotAvailable\":\"dotnet CLI is not available. Cannot sign package.\"}}}}')","/**\n * i18n module for projectpackager package.\n * Registers projectpackager-specific translations.\n */\n\nimport { I18nManager } from \"@uipath/solutionpackager-tool-core\";\nimport de from \"./locales/de.json\" with { type: \"json\" };\nimport { en } from \"./locales/en.js\";\nimport es from \"./locales/es.json\" with { type: \"json\" };\nimport esMX from \"./locales/es-MX.json\" with { type: \"json\" };\nimport fr from \"./locales/fr.json\" with { type: \"json\" };\nimport ja from \"./locales/ja.json\" with { type: \"json\" };\nimport ko from \"./locales/ko.json\" with { type: \"json\" };\nimport pt from \"./locales/pt.json\" with { type: \"json\" };\nimport ptBR from \"./locales/pt-BR.json\" with { type: \"json\" };\nimport ro from \"./locales/ro.json\" with { type: \"json\" };\nimport ru from \"./locales/ru.json\" with { type: \"json\" };\nimport tr from \"./locales/tr.json\" with { type: \"json\" };\nimport zhCN from \"./locales/zh-CN.json\" with { type: \"json\" };\nimport zhTW from \"./locales/zh-TW.json\" with { type: \"json\" };\nimport zu from \"./locales/zu.json\" with { type: \"json\" };\n\n/**\n * Register projectpackager translations at module initialization.\n * This extends the core translations with package-specific keys.\n */\nI18nManager.registerTranslations(\"en\", en);\nI18nManager.registerTranslations(\"de\", de);\nI18nManager.registerTranslations(\"es\", es);\nI18nManager.registerTranslations(\"es-MX\", esMX);\nI18nManager.registerTranslations(\"fr\", fr);\nI18nManager.registerTranslations(\"ja\", ja);\nI18nManager.registerTranslations(\"ko\", ko);\nI18nManager.registerTranslations(\"pt\", pt);\nI18nManager.registerTranslations(\"pt-BR\", ptBR);\nI18nManager.registerTranslations(\"ro\", ro);\nI18nManager.registerTranslations(\"ru\", ru);\nI18nManager.registerTranslations(\"tr\", tr);\nI18nManager.registerTranslations(\"zh-CN\", zhCN);\nI18nManager.registerTranslations(\"zh-TW\", zhTW);\nI18nManager.registerTranslations(\"zu\", zu);\n\nexport type { TranslationKeys } from \"./locales/en.js\";\n// Export the translations for type inference\nexport { en };\n","import type { ConnectionInfo as ToolCoreConnectionInfo } from \"@uipath/solutionpackager-tool-core\";\nimport {\n LogLevel,\n type TargetFramework,\n} from \"@uipath/solutionpackager-tool-core\";\n\n// Re-export ConnectionInfo from tool.core for consistency\nexport type ConnectionInfo = ToolCoreConnectionInfo;\n\n/**\n * Rules configuration file type enum\n */\nexport enum RulesConfigFileType {\n Default = \"Default\",\n AutomationOps = \"AutomationOps\",\n Studio = \"Studio\",\n}\n\n/**\n * Validate options\n */\nexport interface ValidateOptions {\n /**\n * Whether to skip analysis\n */\n skipAnalyze: boolean;\n\n /**\n * Default severity level\n */\n defaultSeverity?: string;\n\n /**\n * Path to governance/policy file\n */\n governanceFilePath?: string;\n\n /**\n * Type of governance file\n */\n governanceFileType: RulesConfigFileType;\n}\n\n/**\n * Pack options\n */\nexport interface PackOptions {\n /**\n * Whether to skip dependency optimization\n */\n skipDependencyOptimization: boolean;\n\n /**\n * Whether to include sources\n */\n includeSources: boolean;\n\n /**\n * Whether to split packages\n */\n splitPackages: boolean;\n}\n\n/**\n * Publish information\n */\nexport interface PublishInfo {\n /**\n * publish request id.\n */\n id: string;\n}\n\n/**\n * Package signing information\n */\nexport interface PackageSigningInfo {\n /**\n * Path to the certificate file\n */\n certificatePath?: string;\n\n /**\n * Certificate password\n */\n certificatePassword?: string;\n\n /**\n * Timestamp server URL\n */\n timestampServer?: string;\n}\n\n/**\n * Base parameters for the packager tool\n */\nexport abstract class PackagerParameters {\n /**\n * Input path to the solution or project folder\n */\n inputPath!: string;\n\n /**\n * Log level for the packager\n */\n logLevel: LogLevel = LogLevel.Warn;\n\n /**\n * Output path for generated artifacts.\n * If not provided, a temporary path will be used.\n */\n outputPath?: string;\n\n /**\n * Target framework for the package\n */\n targetFramework?: TargetFramework;\n\n /**\n * Whether to exclude configured sources\n */\n excludeConfiguredSources: boolean = false;\n\n /**\n * Path to NuGet sources configuration file\n */\n nuGetSourcesConfigPath?: string;\n\n /**\n * Path to detailed log file\n */\n detailedLogPath?: string;\n\n /**\n * Connection information\n */\n connection?: ConnectionInfo;\n}\n","import { PackagerParameters } from \"./packager-parameters.js\";\n\n/**\n * Project-specific parameters for restore operations\n */\nexport class ProjectRestoreOptions extends PackagerParameters {}\n","import {\n RulesConfigFileType,\n type ValidateOptions,\n} from \"./packager-parameters.js\";\nimport { ProjectRestoreOptions } from \"./project-restore-options.js\";\n\n/**\n * Project-specific parameters for validate/analyze operations\n */\nexport class ProjectValidateOptions extends ProjectRestoreOptions {\n /**\n * Validate options\n */\n validateOptions: ValidateOptions = {\n skipAnalyze: false,\n governanceFileType: RulesConfigFileType.Default,\n };\n}\n","import { ProjectValidateOptions } from \"./project-validate-options.js\";\n\n/**\n * Project-specific parameters for build operations\n */\nexport class ProjectBuildOptions extends ProjectValidateOptions {}\n","import type { NugetPackageInfo } from \"@uipath/solutionpackager-tool-core\";\nimport type { PackageSigningInfo, PackOptions } from \"./packager-parameters.js\";\nimport { ProjectBuildOptions } from \"./project-build-options.js\";\n\n/**\n * Project-specific parameters extending build options with pack-specific settings\n */\nexport class ProjectPackOptions extends ProjectBuildOptions {\n destinationPath!: string;\n\n /**\n * NuGet package information\n */\n package!: NugetPackageInfo;\n\n /**\n * Package signing information\n */\n signingInfo?: PackageSigningInfo;\n\n /**\n * Pack options\n */\n packOptions?: PackOptions;\n}\n","/**\n * Interface for NuGet package operations\n */\nexport interface IPackService {\n /**\n * Sanitize a package ID to conform to NuGet standards\n * @param packageId - The package ID to sanitize\n * @returns The sanitized package ID\n */\n sanitizePackageId(packageId: string): string;\n}\n\n/**\n * Service for NuGet package operations\n */\nexport class PackService implements IPackService {\n // Matches non-word characters except dots and dashes (equivalent to C# [\\W-[.-]])\n private readonly disallowedCharsRegex = /[^\\w.-]/g;\n private readonly spacesDotRegex = /[\\s.]+/g;\n // Matches zero or more dots, followed by dash or colon, followed by zero or more dots (equivalent to C# \\.*[-:]\\..*)\n private readonly dotDashRegex = /\\.*[-:]\\.*/g;\n private readonly MaxPackageIdLength = 100;\n\n /**\n * Sanitize a package ID to conform to NuGet standards\n * @param packageId - The package ID to sanitize\n * @returns The sanitized package ID\n */\n sanitizePackageId(packageId: string): string {\n packageId = packageId.trim();\n packageId = packageId.replace(this.spacesDotRegex, \".\");\n packageId = packageId.replace(this.dotDashRegex, \"-\");\n packageId = packageId.replace(this.disallowedCharsRegex, \"_\");\n\n if (packageId.length > this.MaxPackageIdLength) {\n throw new Error(\n `Package id ${packageId} exceeds the characters limit of ${this.MaxPackageIdLength}`,\n );\n }\n\n return packageId;\n }\n}\n","import {\n type IFileSystem,\n type IToolLogger,\n ToolErrorCodes,\n ToolResult,\n translate,\n} from \"@uipath/solutionpackager-tool-core\";\nimport {\n type PackagerParameters,\n RulesConfigFileType,\n type ValidateOptions,\n} from \"../models/packager-parameters.js\";\n\n/**\n * Interface for a pack options validator\n */\nexport interface IPackagerParametersValidator<\n TOptions extends PackagerParameters,\n> {\n /**\n * Validate pack options\n * @param options Pack options to validate\n * @param cancellationToken Optional cancellation token\n * @returns ToolResult indicating validation success or failure\n */\n validateAsync(\n options: TOptions,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult>;\n}\n\n/**\n * Base validator for packager parameters.\n * Contains common validation logic shared by solution and project validators.\n */\nexport class PackagerParametersValidator<TOptions extends PackagerParameters>\n implements IPackagerParametersValidator<TOptions>\n{\n constructor(\n protected readonly logger: IToolLogger,\n protected readonly fileSystem: IFileSystem,\n ) {}\n\n async validateAsync(\n _options: TOptions,\n _cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n return ToolResult.success();\n }\n\n protected validateDestinationPath(destinationPath: string): ToolResult {\n if (!destinationPath) {\n const error = translate.t(\n \"solutionpackager.validator.errors.destinationNotDefined\",\n );\n this.logger.error(error);\n return ToolResult.error(ToolErrorCodes.InternalError, error);\n }\n return ToolResult.success();\n }\n\n protected async validateGovernanceOptions(\n validateOptions: ValidateOptions,\n ): Promise<ToolResult> {\n if (\n validateOptions.governanceFileType === RulesConfigFileType.Default\n ) {\n if (validateOptions.governanceFilePath) {\n this.logger.warn(\n `Governance file path '${validateOptions.governanceFilePath}' will be ignored when governance file type is Default`,\n );\n }\n return ToolResult.success();\n }\n\n if (!validateOptions.governanceFilePath) {\n const error = translate.t(\n \"solutionpackager.validator.errors.governanceRequired\",\n );\n this.logger.error(error);\n return ToolResult.error(ToolErrorCodes.InternalError, error);\n }\n\n try {\n const stat = await this.fileSystem.stat(\n validateOptions.governanceFilePath,\n );\n if (!stat) {\n const error = translate.t(\n \"solutionpackager.validator.errors.governanceFileInfo\",\n {\n path: validateOptions.governanceFilePath,\n },\n );\n this.logger.error(error);\n return ToolResult.error(ToolErrorCodes.InternalError, error);\n }\n if (stat.isDirectory()) {\n const error = translate.t(\n \"solutionpackager.validator.errors.governanceInvalidFile\",\n {\n path: validateOptions.governanceFilePath,\n },\n );\n this.logger.error(error);\n return ToolResult.error(ToolErrorCodes.InternalError, error);\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n const errorLog = `Governance file not found or inaccessible: ${validateOptions.governanceFilePath}. Error: ${errorMessage}`;\n this.logger.error(errorLog);\n return ToolResult.error(ToolErrorCodes.InternalError, errorLog);\n }\n\n this.logger.info(\n `Using Studio governance file: ${validateOptions.governanceFilePath}`,\n );\n return ToolResult.success();\n }\n}\n","import type { ToolResult } from \"@uipath/solutionpackager-tool-core\";\nimport type { ProjectBuildOptions } from \"../models/project-build-options.js\";\nimport {\n type IPackagerParametersValidator,\n PackagerParametersValidator,\n} from \"./packager-parameters-validator.js\";\n\n/**\n * Interface for the project build options validator\n */\nexport type IProjectBuildOptionsValidator =\n IPackagerParametersValidator<ProjectBuildOptions>;\n\n/**\n * Validator for project build options.\n * Validates governance options required for build operations.\n */\nexport class ProjectBuildOptionsValidator\n extends PackagerParametersValidator<ProjectBuildOptions>\n implements IProjectBuildOptionsValidator\n{\n async validateAsync(\n options: ProjectBuildOptions,\n _cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n return await this.validateGovernanceOptions(options.validateOptions);\n }\n}\n","import {\n type IFileSystem,\n Path,\n type ProjectType,\n ProjectTypes,\n translate,\n} from \"@uipath/solutionpackager-tool-core\";\nimport type { LoadedUiProject, UiProject } from \"../models/project-models.js\";\n\n/**\n * Interface for loading project information from the file system\n */\nexport interface IProjectLoader {\n /**\n * Load project information from a directory path.\n * Searches for project.uiproj first, falls back to webAppManifest.json.\n * @param projectPath Path to the project directory\n * @returns Loaded project information\n * @throws Error if neither project.uiproj nor webAppManifest.json is found\n */\n loadProject(projectPath: string): Promise<LoadedUiProject>;\n}\n\nexport class ProjectLoader implements IProjectLoader {\n static readonly ProjectFileName = \"project.uiproj\";\n static readonly WebAppManifestFileName = \"webAppManifest.json\";\n\n constructor(private readonly fileSystem: IFileSystem) {}\n\n async loadProject(projectPath: string): Promise<LoadedUiProject> {\n if (!projectPath) {\n throw new Error(\n translate.t(\n \"solutionpackager.projectLoader.errors.pathRequired\",\n ),\n );\n }\n\n // Try project.uiproj first\n const projectFilePath = Path.join(\n projectPath,\n ProjectLoader.ProjectFileName,\n );\n const projectFileExists = await this.fileSystem.exists(projectFilePath);\n\n if (projectFileExists) {\n return await this.loadFromProjectFile(projectPath, projectFilePath);\n }\n\n // Fall back to webAppManifest.json\n const webAppManifestPath = Path.join(\n projectPath,\n ProjectLoader.WebAppManifestFileName,\n );\n const webAppManifestExists =\n await this.fileSystem.exists(webAppManifestPath);\n\n if (webAppManifestExists) {\n return this.loadFromWebAppManifest(projectPath, webAppManifestPath);\n }\n\n throw new Error(\n translate.t(\"solutionpackager.projectLoader.errors.noProjectFile\", {\n projectFile: ProjectLoader.ProjectFileName,\n manifestFile: ProjectLoader.WebAppManifestFileName,\n path: projectPath,\n }),\n );\n }\n\n private async loadFromProjectFile(\n projectPath: string,\n projectFilePath: string,\n ): Promise<LoadedUiProject> {\n const fileContent = await this.fileSystem.readFile(projectFilePath);\n if (!fileContent) {\n throw new Error(\n translate.t(\n \"solutionpackager.projectLoader.errors.readFailed\",\n {\n path: projectFilePath,\n },\n ),\n );\n }\n\n const json =\n typeof fileContent === \"string\"\n ? fileContent\n : new TextDecoder(\"utf-8\").decode(fileContent);\n\n const projectData = JSON.parse(json) as UiProject;\n\n const projectType = projectData?.ProjectType || projectData?.type;\n if (!projectData || !projectType) {\n throw new Error(\n translate.t(\n \"solutionpackager.projectLoader.errors.invalidProject\",\n {\n path: projectFilePath,\n },\n ),\n );\n }\n\n return {\n type: projectType as ProjectType,\n name: projectData.Name || Path.basename(projectPath),\n projectPath,\n projectFilePath,\n };\n }\n\n private loadFromWebAppManifest(\n projectPath: string,\n webAppManifestPath: string,\n ): LoadedUiProject {\n // webAppManifest.json presence indicates an AppV2 project\n const folderName = Path.basename(projectPath);\n\n return {\n type: ProjectTypes.AppV2,\n name: folderName,\n projectPath,\n projectFilePath: webAppManifestPath,\n };\n }\n}\n","export enum TelemetryNames {\n ProjectToolPack = \"ProjectPackager.Tool.Pack\",\n ProjectToolRestore = \"ProjectPackager.Tool.Restore\",\n ProjectToolValidate = \"ProjectPackager.Tool.Validate\",\n ProjectToolBuild = \"ProjectPackager.Tool.Build\",\n ProjectPackagerPack = \"ProjectPackager.Pack\",\n ProjectPackagerRestore = \"ProjectPackager.Restore\",\n ProjectPackagerValidate = \"ProjectPackager.Validate\",\n ProjectPackagerBuild = \"ProjectPackager.Build\",\n ProjectPackagerProjectLoaded = \"ProjectPackager.ProjectLoaded\",\n}\n","import type {\n IFileSystem,\n IProjectPackOptions,\n} from \"@uipath/solutionpackager-tool-core\";\nimport type { LoadedUiProject } from \"../models/project-models.js\";\nimport type { ProjectPackOptions } from \"../models/project-pack-options.js\";\nimport type { IPackService } from \"./pack-service.js\";\n\n/**\n * Interface for building project pack options\n */\nexport interface IProjectPackOptionsBuilder {\n /**\n * Build project pack options from project parameters and loaded project info\n */\n buildProjectPackOptions(\n parameters: ProjectPackOptions,\n project: LoadedUiProject,\n ): Promise<IProjectPackOptions>;\n}\n\nexport class ProjectPackOptionsBuilder implements IProjectPackOptionsBuilder {\n constructor(\n private readonly packService: IPackService,\n private readonly fileSystem: IFileSystem,\n ) {}\n\n async buildProjectPackOptions(\n parameters: ProjectPackOptions,\n project: LoadedUiProject,\n ): Promise<IProjectPackOptions> {\n if (!parameters.outputPath) {\n throw new Error(\"Output path is required for Pack command\");\n }\n\n await this.fileSystem.mkdir(parameters.outputPath);\n\n // Use project name if package id is not set or is empty\n const packageId =\n !parameters.package.id || parameters.package.id.trim() === \"\"\n ? project.name\n : parameters.package.id;\n\n const packageInfo = {\n ...parameters.package,\n id: this.packService.sanitizePackageId(packageId),\n };\n\n return {\n projectPath: project.projectPath,\n excludeConfiguredSources:\n parameters.excludeConfiguredSources ?? false,\n nuGetSourcesConfigPath: parameters.nuGetSourcesConfigPath,\n logLevel: parameters.logLevel,\n skipAnalyze: parameters.validateOptions.skipAnalyze,\n skipValidate: false,\n detailedLogPath: parameters.detailedLogPath,\n policyFilePath: parameters.validateOptions.governanceFilePath,\n policyFileType: parameters.validateOptions.governanceFileType,\n outputPath: parameters.outputPath,\n outputType: undefined,\n projectType: project.type,\n package: packageInfo,\n skipDependencyOptimization:\n parameters.packOptions?.skipDependencyOptimization ?? false,\n includeSources: parameters.packOptions?.includeSources ?? false,\n splitPackages: parameters.packOptions?.splitPackages ?? false,\n };\n }\n}\n","import type { ToolResult } from \"@uipath/solutionpackager-tool-core\";\nimport type { ProjectPackOptions } from \"../models/project-pack-options.js\";\nimport type { IPackagerParametersValidator } from \"./packager-parameters-validator.js\";\nimport { ProjectBuildOptionsValidator } from \"./project-build-options-validator.js\";\n\n/**\n * Interface for the project pack options validator\n */\nexport type IProjectPackOptionsValidator =\n IPackagerParametersValidator<ProjectPackOptions>;\n\n/**\n * Validator for project pack options.\n * Validates destination path and governance options required for pack operations.\n */\nexport class ProjectPackOptionsValidator\n extends ProjectBuildOptionsValidator\n implements IProjectPackOptionsValidator\n{\n async validateAsync(\n options: ProjectPackOptions,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n const destinationResult = this.validateDestinationPath(\n options.destinationPath,\n );\n if (!destinationResult.isSuccess) {\n return destinationResult;\n }\n\n return await super.validateAsync(options, cancellationToken);\n }\n}\n","import {\n type IProjectBuildOptions,\n type IProjectPackOptions,\n type IProjectRestoreOptions,\n type IProjectValidateOptions,\n type ProjectOperationContext,\n type ProjectTool,\n ToolErrorCodes,\n ToolResult,\n} from \"@uipath/solutionpackager-tool-core\";\nimport type { ITelemetryService } from \"@uipath/telemetry\";\nimport type { PackageSigningInfo } from \"../models/packager-parameters.js\";\nimport type { UiPathProject } from \"../models/project-models.js\";\nimport { TelemetryNames } from \"../telemetry-names.js\";\nimport type { IPackageSignService } from \"./package-sign-service.js\";\nimport type { IToolsFactory } from \"./tools-factory.js\";\n\n/**\n * Interface for executing project tool operations\n */\nexport interface IProjectToolExecutor {\n restoreAsync(\n options: IProjectRestoreOptions,\n project: UiPathProject,\n context?: ProjectOperationContext,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult>;\n\n validateAsync(\n options: IProjectValidateOptions,\n project: UiPathProject,\n context?: ProjectOperationContext,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult>;\n\n buildAsync(\n options: IProjectBuildOptions,\n project: UiPathProject,\n context?: ProjectOperationContext,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult>;\n\n packAsync(\n options: IProjectPackOptions,\n project: UiPathProject,\n context?: ProjectOperationContext,\n signingInfo?: PackageSigningInfo,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult>;\n}\n\nexport class ProjectToolExecutor implements IProjectToolExecutor {\n constructor(\n private readonly toolsFactory: IToolsFactory,\n private readonly telemetry: ITelemetryService,\n private readonly packageSignService?: IPackageSignService,\n ) {}\n\n async restoreAsync(\n options: IProjectRestoreOptions,\n project: UiPathProject,\n context?: ProjectOperationContext,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n return await this.executeToolOperationAsync(project, context, (tool) =>\n this.telemetry.trackDependencyOperation<ToolResult>(\n TelemetryNames.ProjectToolRestore,\n project.Type,\n async () => tool.restoreAsync(options, cancellationToken),\n {\n projectId: project.Id,\n projectType: project.Type,\n },\n ),\n );\n }\n\n async validateAsync(\n options: IProjectValidateOptions,\n project: UiPathProject,\n context?: ProjectOperationContext,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n return await this.executeToolOperationAsync(project, context, (tool) =>\n this.telemetry.trackDependencyOperation<ToolResult>(\n TelemetryNames.ProjectToolValidate,\n project.Type,\n async () => tool.validateAsync(options, cancellationToken),\n {\n projectId: project.Id,\n projectType: project.Type,\n },\n ),\n );\n }\n\n async buildAsync(\n options: IProjectBuildOptions,\n project: UiPathProject,\n context?: ProjectOperationContext,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n return await this.executeToolOperationAsync(project, context, (tool) =>\n this.telemetry.trackDependencyOperation<ToolResult>(\n TelemetryNames.ProjectToolBuild,\n project.Type,\n async () => tool.buildAsync(options, cancellationToken),\n {\n projectId: project.Id,\n projectType: project.Type,\n },\n ),\n );\n }\n\n async packAsync(\n options: IProjectPackOptions,\n project: UiPathProject,\n context?: ProjectOperationContext,\n signingInfo?: PackageSigningInfo,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n return await this.executeToolOperationAsync(\n project,\n context,\n async (tool) => {\n const result =\n await this.telemetry.trackDependencyOperation<ToolResult>(\n TelemetryNames.ProjectToolPack,\n project.Type,\n async () => {\n return await tool.packAsync(\n options,\n cancellationToken,\n );\n },\n {\n projectId: project.Id,\n projectType: project.Type,\n },\n );\n\n // If pack was successful and signing info with certificate path is provided, sign all packages\n if (\n result.isSuccess &&\n signingInfo?.certificatePath &&\n result.packages.length > 0\n ) {\n const signResult = await this.signPackagesAsync(\n result.packages,\n signingInfo,\n );\n if (!signResult.isSuccess) {\n return signResult;\n }\n }\n\n return result;\n },\n );\n }\n\n /**\n * Execute an operation on a project tool with proper creation and disposal.\n */\n private async executeToolOperationAsync(\n project: UiPathProject,\n context: ProjectOperationContext | undefined,\n operation: (tool: ProjectTool) => Promise<ToolResult>,\n ): Promise<ToolResult> {\n try {\n const tool = await this.toolsFactory.createProjectToolAsync(\n project,\n context,\n );\n\n try {\n return await operation(tool);\n } finally {\n const disposeResult = tool.dispose();\n if (disposeResult instanceof Promise) {\n await disposeResult;\n }\n }\n } catch (error) {\n return ToolResult.error(\n ToolErrorCodes.InternalError,\n error instanceof Error ? error.message : String(error),\n );\n }\n }\n\n /**\n * Sign all packages using the package sign service.\n * @param packages - Array of package paths to sign\n * @param signingInfo - Signing configuration\n * @returns ToolResult indicating success or failure\n */\n private async signPackagesAsync(\n packages: string[],\n signingInfo: PackageSigningInfo,\n ): Promise<ToolResult> {\n // Check if package signing service is available\n if (!this.packageSignService) {\n return ToolResult.error(\n ToolErrorCodes.InternalError,\n \"Package signing is required but signing service is not available. Package signing requires dotnet CLI to be installed in Node.js environment.\",\n );\n }\n\n const certificatePath = signingInfo.certificatePath as string;\n\n // Sign all packages in parallel\n const signResults = await Promise.all(\n packages.map((packagePath) =>\n this.packageSignService?.signPackageAsync(\n packagePath,\n certificatePath,\n signingInfo.certificatePassword,\n signingInfo.timestampServer,\n ),\n ),\n );\n\n // Check if any signing failed\n const failedResult = signResults.find(\n (result) => result && !result.isSuccess,\n );\n if (failedResult) {\n return failedResult;\n }\n\n return ToolResult.success();\n }\n}\n","import type { ToolResult } from \"@uipath/solutionpackager-tool-core\";\nimport type { ProjectValidateOptions } from \"../models/project-validate-options.js\";\nimport {\n type IPackagerParametersValidator,\n PackagerParametersValidator,\n} from \"./packager-parameters-validator.js\";\n\n/**\n * Interface for the project validate options validator\n */\nexport type IProjectValidateOptionsValidator =\n IPackagerParametersValidator<ProjectValidateOptions>;\n\n/**\n * Validator for project validate options.\n * Validates governance options required for validate/analyze operations.\n */\nexport class ProjectValidateOptionsValidator\n extends PackagerParametersValidator<ProjectValidateOptions>\n implements IProjectValidateOptionsValidator\n{\n async validateAsync(\n options: ProjectValidateOptions,\n _cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n return await this.validateGovernanceOptions(options.validateOptions);\n }\n}\n","import {\n type IToolLogger,\n LogLevel,\n LogMessage,\n type LogOptions,\n} from \"@uipath/solutionpackager-tool-core\";\n\n/**\n * Callback type for handling log messages\n * This is an implementation detail of ToolLogger\n */\nexport type LogHandler = (logMessage: LogMessage) => void;\n\n/**\n * Default log handler that writes formatted messages to console\n */\nlet globalLogHandler: LogHandler = (logMessage: LogMessage) => {\n const formattedMessage = logMessage.toFormattedString();\n switch (logMessage.logLevel) {\n case LogLevel.Debug:\n console.debug(formattedMessage);\n break;\n case LogLevel.Info:\n console.info(formattedMessage);\n break;\n case LogLevel.Warn:\n console.warn(formattedMessage);\n break;\n case LogLevel.Error:\n console.error(formattedMessage);\n break;\n }\n};\n\n/**\n * Set the global log handler for all ToolLogger instances that don't specify one\n */\nexport function setGlobalLogHandler(handler: LogHandler): void {\n globalLogHandler = handler;\n}\n\n/**\n * Logger implementation for creating and outputting LogMessage instances\n * with consistent source and sourceTarget\n */\nexport class ToolLogger implements IToolLogger {\n constructor(\n private readonly source: string,\n private readonly sourceTarget: string,\n ) {}\n\n debug(message: string, options?: LogOptions): void {\n const logMessage = new LogMessage(message, LogLevel.Debug, {\n source: this.source,\n sourceTarget: this.sourceTarget,\n ...options,\n });\n globalLogHandler(logMessage);\n }\n\n info(message: string, options?: LogOptions): void {\n const logMessage = new LogMessage(message, LogLevel.Info, {\n source: this.source,\n sourceTarget: this.sourceTarget,\n ...options,\n });\n globalLogHandler(logMessage);\n }\n\n warn(message: string, options?: LogOptions): void {\n const logMessage = new LogMessage(message, LogLevel.Warn, {\n source: this.source,\n sourceTarget: this.sourceTarget,\n ...options,\n });\n globalLogHandler(logMessage);\n }\n\n error(message: string, options?: LogOptions): void {\n const logMessage = new LogMessage(message, LogLevel.Error, {\n source: this.source,\n sourceTarget: this.sourceTarget,\n ...options,\n });\n globalLogHandler(logMessage);\n }\n\n progress(message: string, options?: LogOptions): void {\n const logMessage = new LogMessage(message, LogLevel.Info, {\n source: this.source,\n sourceTarget: this.sourceTarget,\n ...options,\n });\n globalLogHandler(logMessage);\n }\n\n log(message: string, logLevel: LogLevel, options?: LogOptions): void {\n const logMessage = new LogMessage(message, logLevel, {\n source: this.source,\n sourceTarget: this.sourceTarget,\n ...options,\n });\n globalLogHandler(logMessage);\n }\n\n logMessage(message: LogMessage): void {\n globalLogHandler(message);\n }\n}\n","import type {\n IFileSystem,\n IToolsFactoryRepository,\n ProjectOperationContext,\n ProjectTool,\n SolutionTool,\n} from \"@uipath/solutionpackager-tool-core\";\nimport type { UiPathProject } from \"../models/project-models.js\";\nimport { ToolLogger } from \"./tool-logger.js\";\n\n/**\n * Factory interface for creating solution and project tools\n */\nexport interface IToolsFactory {\n /**\n * Create a solution tool for the specified solution\n * @throws Error if no factory is registered\n */\n createSolutionToolAsync(solutionName: string): Promise<SolutionTool>;\n\n /**\n * Create a project tool for the specified project\n * @param project - The project to create a tool for\n * @param context - Optional operation context with id and sibling project info\n * @throws Error if no factory is found for the project type\n */\n createProjectToolAsync(\n project: UiPathProject,\n context?: ProjectOperationContext,\n ): Promise<ProjectTool>;\n}\n\n/**\n * Factory for creating solution and project tools\n */\nexport class ToolsFactory implements IToolsFactory {\n constructor(\n private readonly repository: IToolsFactoryRepository,\n private readonly fileSystem: IFileSystem,\n ) {}\n\n async createSolutionToolAsync(solutionName: string): Promise<SolutionTool> {\n const logger = new ToolLogger(\"ResourceBuilder\", solutionName);\n const factory = this.repository.getSolutionToolFactory();\n return await factory.createAsync(logger, this.fileSystem);\n }\n\n async createProjectToolAsync(\n project: UiPathProject,\n context?: ProjectOperationContext,\n ): Promise<ProjectTool> {\n const sourceTarget = getSourceTarget();\n const logger = new ToolLogger(project.Type, sourceTarget);\n\n if (!project.ProjectPath) {\n throw new Error(`Project path not set for project: ${project.Id}`);\n }\n\n const factory = this.repository.getProjectToolFactory(project.Type);\n return await factory.createAsync(logger, this.fileSystem, context);\n\n function getSourceTarget(): string {\n // Split by both forward slash and backslash, get first token (folder name)\n const segments = project.ProjectRelativePath.split(/[/\\\\]/);\n if (segments.length > 1) {\n return segments[0];\n }\n // Standalone project-packager: no folder prefix, use project name\n return project.Id;\n }\n }\n}\n","import {\n toolsFactoryRepository as defaultToolsFactoryRepository,\n type IFileSystem,\n type IProjectBuildOptions,\n type IProjectRestoreOptions,\n type IProjectValidateOptions,\n type IToolsFactoryRepository,\n type NugetPackageInfo,\n NugetPackager,\n Path,\n TemporaryStorageService,\n ToolErrorCodes,\n ToolResult,\n translate,\n ZipService,\n} from \"@uipath/solutionpackager-tool-core\";\nimport type { ITelemetryService } from \"@uipath/telemetry\";\nimport type { PackagerParameters } from \"../models/packager-parameters.js\";\nimport type { ProjectBuildOptions } from \"../models/project-build-options.js\";\nimport type {\n LoadedUiProject,\n UiPathProject,\n} from \"../models/project-models.js\";\nimport type { ProjectPackOptions } from \"../models/project-pack-options.js\";\nimport type { ProjectRestoreOptions } from \"../models/project-restore-options.js\";\nimport type { ProjectValidateOptions } from \"../models/project-validate-options.js\";\nimport { TelemetryNames } from \"../telemetry-names.js\";\nimport { PackService } from \"./pack-service.js\";\nimport type { IPackageSignService } from \"./package-sign-service.js\";\nimport {\n type IProjectBuildOptionsValidator,\n ProjectBuildOptionsValidator,\n} from \"./project-build-options-validator.js\";\nimport { type IProjectLoader, ProjectLoader } from \"./project-loader.js\";\nimport {\n type IProjectPackOptionsBuilder,\n ProjectPackOptionsBuilder,\n} from \"./project-pack-options-builder.js\";\nimport {\n type IProjectPackOptionsValidator,\n ProjectPackOptionsValidator,\n} from \"./project-pack-options-validator.js\";\nimport {\n type IProjectToolExecutor,\n ProjectToolExecutor,\n} from \"./project-tool-executor.js\";\nimport {\n type IProjectValidateOptionsValidator,\n ProjectValidateOptionsValidator,\n} from \"./project-validate-options-validator.js\";\nimport { ToolLogger } from \"./tool-logger.js\";\nimport { type IToolsFactory, ToolsFactory } from \"./tools-factory.js\";\n\n/**\n * Package stream containing package data\n */\nexport interface PackageStream {\n /** Name of the package file */\n name: string;\n /** Package file data */\n data: Uint8Array;\n}\n\n/**\n * Interface for the ProjectPackager component.\n * Provides methods to setup and pack individual UiPath projects.\n */\nexport interface IProjectPackager {\n /**\n * File system instance\n */\n readonly fileSystem: IFileSystem;\n\n /**\n * Check if the project can be packed by verifying the project type has a registered tool.\n * @param projectPath Path to the project folder\n * @returns True if the project type has a registered tool factory\n */\n canPackProjectAsync(projectPath: string): Promise<boolean>;\n\n /**\n * Setup the temporary storage.\n * @param input The project folder as a zip Uint8Array (extracts to temp folder) or a path string (uses as-is)\n * @param operationId Optional operation ID for telemetry correlation\n * @returns The path to the project folder\n */\n setupAsync(\n input: Uint8Array | string,\n operationId?: string,\n ): Promise<string>;\n\n /**\n * Restore project dependencies.\n * @param options Project options containing input path and configuration\n * @param cancellationToken Optional cancellation token\n * @returns ToolResult indicating success or failure\n */\n restoreProjectAsync(\n options: ProjectRestoreOptions,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult>;\n\n /**\n * Analyze (validate) a project.\n * @param options Project options containing input path and configuration\n * @param cancellationToken Optional cancellation token\n * @returns ToolResult indicating success or failure\n */\n validateProjectAsync(\n options: ProjectValidateOptions,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult>;\n\n /**\n * Build a project.\n * @param options Project options containing input path, output path, and configuration\n * @param cancellationToken Optional cancellation token\n * @returns ToolResult indicating success or failure\n */\n buildProjectAsync(\n options: ProjectBuildOptions,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult>;\n\n /**\n * Pack a project using the provided options.\n * @param options Project pack options containing all parameters\n * @param cancellationToken Optional cancellation token\n * @returns ToolResult with the paths to the created packages\n */\n packProjectAsync(\n options: ProjectPackOptions,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult>;\n\n /**\n * Convert a successful ToolResult to a list of package streams.\n * @param result The ToolResult to convert\n * @returns A promise that resolves to an array of PackageStream objects\n * @throws Error if the result is not successful or if any package file cannot be read\n */\n getPackageStreamsAsync(result: ToolResult): Promise<PackageStream[]>;\n}\n\nexport class ProjectPackager implements IProjectPackager {\n private readonly repository: IToolsFactoryRepository;\n private readonly temporaryStorage: TemporaryStorageService;\n private readonly zipService: ZipService;\n private readonly logger: ToolLogger;\n private readonly optionsBuilder: IProjectPackOptionsBuilder;\n private readonly toolsFactory: IToolsFactory;\n private readonly projectExecutor: IProjectToolExecutor;\n private readonly projectLoader: IProjectLoader;\n private readonly validateOptionsValidator: IProjectValidateOptionsValidator;\n private readonly buildOptionsValidator: IProjectBuildOptionsValidator;\n private readonly packOptionsValidator: IProjectPackOptionsValidator;\n private readonly nugetPackager: NugetPackager;\n\n constructor(\n public readonly fileSystem: IFileSystem,\n private readonly telemetryService: ITelemetryService,\n private readonly packageSignService?: IPackageSignService,\n ) {\n this.repository = defaultToolsFactoryRepository;\n this.temporaryStorage = new TemporaryStorageService(this.fileSystem);\n this.zipService = new ZipService(this.fileSystem);\n this.nugetPackager = new NugetPackager(this.fileSystem);\n this.logger = new ToolLogger(\"ProjectPackager\", \"PackProject\");\n this.validateOptionsValidator = new ProjectValidateOptionsValidator(\n this.logger,\n this.fileSystem,\n );\n this.buildOptionsValidator = new ProjectBuildOptionsValidator(\n this.logger,\n this.fileSystem,\n );\n this.packOptionsValidator = new ProjectPackOptionsValidator(\n this.logger,\n this.fileSystem,\n );\n\n const packService = new PackService();\n this.optionsBuilder = new ProjectPackOptionsBuilder(\n packService,\n this.fileSystem,\n );\n\n this.toolsFactory = new ToolsFactory(this.repository, this.fileSystem);\n this.projectExecutor = new ProjectToolExecutor(\n this.toolsFactory,\n this.telemetryService,\n this.packageSignService,\n );\n this.projectLoader = new ProjectLoader(this.fileSystem);\n }\n\n /**\n * Check if the project can be packed by verifying the project type has a registered tool.\n * @param projectPath Path to the project folder\n * @returns True if the project type has a registered tool factory\n */\n async canPackProjectAsync(projectPath: string): Promise<boolean> {\n const project = await this.projectLoader.loadProject(projectPath);\n return this.repository.canHandleProject(project.type);\n }\n\n /**\n * Setup the temporary storage.\n * @param input The project folder as a zip Uint8Array (extracts to temp folder) or a path string (uses as-is)\n * @param operationId Optional operation ID for telemetry correlation\n * @returns The path to the project folder\n */\n async setupAsync(\n input: Uint8Array | string,\n operationId?: string,\n ): Promise<string> {\n this.telemetryService.setOperationId(operationId);\n\n await this.temporaryStorage.cleanup();\n\n if (typeof input === \"string\") {\n return input;\n }\n\n const inputPath =\n await this.temporaryStorage.getTempSubfolderPathAsync(\"input\");\n await this.zipService.extractAsync(input, inputPath);\n\n // Check if the extracted content is inside a single root folder\n const entries = await this.fileSystem.readdir(inputPath);\n if (entries.length === 1) {\n const innerPath = Path.join(inputPath, entries[0]);\n const stat = await this.fileSystem.stat(innerPath);\n if (stat?.isDirectory()) {\n return innerPath;\n }\n }\n\n return inputPath;\n }\n\n /**\n * Restore project dependencies.\n */\n async restoreProjectAsync(\n options: ProjectRestoreOptions,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n return await this.executeProjectOperationAsync(\n options,\n \"Restore\",\n TelemetryNames.ProjectPackagerRestore,\n async (uiPathProject, loadedProject) => {\n const restoreOptions: IProjectRestoreOptions = {\n projectPath: loadedProject.projectPath,\n excludeConfiguredSources:\n options.excludeConfiguredSources ?? false,\n nuGetSourcesConfigPath: options.nuGetSourcesConfigPath,\n logLevel: options.logLevel,\n outputPath: options.outputPath,\n };\n return await this.projectExecutor.restoreAsync(\n restoreOptions,\n uiPathProject,\n undefined,\n cancellationToken,\n );\n },\n cancellationToken,\n );\n }\n\n /**\n * Validate a project.\n */\n async validateProjectAsync(\n options: ProjectValidateOptions,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n const validationResult =\n await this.validateOptionsValidator.validateAsync(\n options,\n cancellationToken,\n );\n if (!validationResult.isSuccess) {\n return validationResult;\n }\n\n return await this.executeProjectOperationAsync(\n options,\n \"Validate\",\n TelemetryNames.ProjectPackagerValidate,\n async (uiPathProject, loadedProject) => {\n const validateOptions: IProjectValidateOptions = {\n projectPath: loadedProject.projectPath,\n excludeConfiguredSources:\n options.excludeConfiguredSources ?? false,\n nuGetSourcesConfigPath: options.nuGetSourcesConfigPath,\n logLevel: options.logLevel,\n skipAnalyze: options.validateOptions.skipAnalyze,\n defaultSeverity: options.validateOptions.defaultSeverity,\n detailedLogPath: options.detailedLogPath,\n policyFilePath: options.validateOptions.governanceFilePath,\n policyFileType: options.validateOptions.governanceFileType,\n };\n return await this.projectExecutor.validateAsync(\n validateOptions,\n uiPathProject,\n undefined,\n cancellationToken,\n );\n },\n cancellationToken,\n );\n }\n\n /**\n * Build a project.\n */\n async buildProjectAsync(\n options: ProjectBuildOptions,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n const validationResult = await this.buildOptionsValidator.validateAsync(\n options,\n cancellationToken,\n );\n if (!validationResult.isSuccess) {\n return validationResult;\n }\n\n return await this.executeProjectOperationAsync(\n options,\n \"Build\",\n TelemetryNames.ProjectPackagerBuild,\n async (uiPathProject, loadedProject) => {\n if (!options.outputPath) {\n options.outputPath =\n await this.temporaryStorage.getTempSubfolderPathAsync(\n \"output\",\n );\n }\n\n const buildOptions: IProjectBuildOptions = {\n projectPath: loadedProject.projectPath,\n excludeConfiguredSources:\n options.excludeConfiguredSources ?? false,\n nuGetSourcesConfigPath: options.nuGetSourcesConfigPath,\n logLevel: options.logLevel,\n skipAnalyze: options.validateOptions.skipAnalyze,\n skipValidate: false,\n detailedLogPath: options.detailedLogPath,\n policyFilePath: options.validateOptions.governanceFilePath,\n policyFileType: options.validateOptions.governanceFileType,\n outputPath: options.outputPath,\n outputType: undefined,\n projectType: uiPathProject.Type,\n };\n return await this.projectExecutor.buildAsync(\n buildOptions,\n uiPathProject,\n undefined,\n cancellationToken,\n );\n },\n cancellationToken,\n );\n }\n\n /**\n * Pack a project using the provided options.\n * @param options Project pack options containing all parameters\n * @param cancellationToken Optional cancellation token\n * @returns ToolResult with the paths to the created packages\n */\n async packProjectAsync(\n options: ProjectPackOptions,\n cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n return await this.telemetryService.trackRequest(\n TelemetryNames.ProjectPackagerPack,\n async () => {\n try {\n let result = await this.packOptionsValidator.validateAsync(\n options,\n cancellationToken,\n );\n\n if (!result.isSuccess) {\n return result;\n }\n\n // Set default outputPath if not provided\n if (!options.outputPath) {\n options.outputPath =\n await this.temporaryStorage.getTempSubfolderPathAsync(\n \"output\",\n );\n }\n\n // Load project information\n const loadedProject = await this.projectLoader.loadProject(\n options.inputPath,\n );\n\n this.telemetryService.trackEvent(\n TelemetryNames.ProjectPackagerProjectLoaded,\n { projectId: loadedProject.name },\n );\n\n // Build project pack options\n const projectPackOptions =\n await this.optionsBuilder.buildProjectPackOptions(\n options,\n loadedProject,\n );\n\n // Create a UiPathProject from loaded project for the executor\n const uiPathProject: UiPathProject = {\n Type: loadedProject.type,\n ProjectRelativePath: Path.basename(\n loadedProject.projectFilePath,\n ),\n ProjectPath: loadedProject.projectPath,\n Id: loadedProject.name,\n };\n\n // Execute the pack operation\n result = await this.projectExecutor.packAsync(\n projectPackOptions,\n uiPathProject,\n undefined,\n options.signingInfo,\n cancellationToken,\n );\n\n // Copy packages to destination path if successful\n if (result.isSuccess && result.packages.length > 0) {\n const destinationPackages =\n await this.copyPackagesToDestination(\n result.packages,\n options.destinationPath,\n projectPackOptions.package,\n );\n result = new ToolResult(\n ToolErrorCodes.Success,\n undefined,\n destinationPackages,\n );\n }\n\n // Log the result\n if (result.isSuccess) {\n this.logger.info(\n `Project pack completed successfully. Packages: ${result.packages.join(\", \")}`,\n );\n } else {\n this.logger.error(\n `Project pack failed with error code ${result.errorCode}: ${result.message}`,\n );\n }\n\n return result;\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n this.logger.error(`Processing error: ${errorMessage}`);\n return ToolResult.error(\n ToolErrorCodes.InternalError,\n `Project pack failed: ${errorMessage}`,\n );\n } finally {\n await this.temporaryStorage.cleanup();\n }\n },\n );\n }\n\n /**\n * Convert a successful ToolResult to a list of package streams.\n * @param result The ToolResult to convert\n * @returns A promise that resolves to an array of PackageStream objects\n * @throws Error if the result is not successful or if any package file cannot be read\n */\n async getPackageStreamsAsync(result: ToolResult): Promise<PackageStream[]> {\n if (!result.isSuccess) {\n throw new Error(\n translate.t(\n \"solutionpackager.packager.errors.failedToGetStreams\",\n {\n errorCode: result.errorCode,\n message: result.message ?? \"\",\n },\n ),\n );\n }\n\n if (!result.packages || result.packages.length === 0) {\n return [];\n }\n\n const packageStreams: PackageStream[] = [];\n\n for (const packagePath of result.packages) {\n const data = await this.fileSystem.readFile(packagePath);\n\n if (!data) {\n throw new Error(\n translate.t(\n \"solutionpackager.packager.errors.failedToReadPackage\",\n {\n path: packagePath,\n },\n ),\n );\n }\n\n const name = packagePath.split(/[\\\\/]/).pop() || packagePath;\n\n packageStreams.push({ name, data });\n }\n\n return packageStreams;\n }\n\n /**\n * Common logic for restore, analyze, and build operations:\n * validates options, loads the project, executes the operation, and handles errors.\n */\n private async executeProjectOperationAsync(\n options: PackagerParameters,\n operationName: string,\n telemetryName: TelemetryNames,\n operation: (\n project: UiPathProject,\n loadedProject: LoadedUiProject,\n ) => Promise<ToolResult>,\n _cancellationToken?: AbortSignal,\n ): Promise<ToolResult> {\n return await this.telemetryService.trackRequest(\n telemetryName,\n async () => {\n try {\n const loadedProject = await this.projectLoader.loadProject(\n options.inputPath,\n );\n\n const uiPathProject: UiPathProject = {\n Type: loadedProject.type,\n ProjectRelativePath: Path.basename(\n loadedProject.projectFilePath,\n ),\n ProjectPath: loadedProject.projectPath,\n Id: loadedProject.name,\n };\n\n const operationResult = await operation(\n uiPathProject,\n loadedProject,\n );\n\n if (operationResult.isSuccess) {\n this.logger.info(\n `Project ${operationName.toLowerCase()} completed successfully.`,\n );\n } else {\n this.logger.error(\n `Project ${operationName.toLowerCase()} failed with error code ${operationResult.errorCode}: ${operationResult.message}`,\n );\n }\n\n return operationResult;\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n this.logger.error(`Processing error: ${errorMessage}`);\n return ToolResult.error(\n ToolErrorCodes.InternalError,\n `Project ${operationName.toLowerCase()} failed: ${errorMessage}`,\n );\n } finally {\n await this.temporaryStorage.cleanup();\n }\n },\n );\n }\n\n /**\n * Copy packages from the output path to the destination path.\n * Handles file paths, directories with .nupkg files, and directories with\n * unpacked NuGet content (e.g., content/, lib/ folders from WorkflowCompiler).\n * @param packagePaths Paths to the package files or directories\n * @param destinationPath Destination directory\n * @param packageInfo NuGet package info for creating .nupkg from unpacked content\n * @returns Paths to the copied package files\n */\n private async copyPackagesToDestination(\n packagePaths: string[],\n destinationPath: string,\n packageInfo: NugetPackageInfo,\n ): Promise<string[]> {\n await this.fileSystem.mkdir(destinationPath);\n\n const destinationPackages: string[] = [];\n\n for (const packagePath of packagePaths) {\n const stat = await this.fileSystem.stat(packagePath);\n\n if (stat?.isDirectory()) {\n // If the path is a directory, find .nupkg files inside it\n const files = await this.fileSystem.readdir(packagePath);\n const nupkgFiles = files.filter((f) => f.endsWith(\".nupkg\"));\n\n if (nupkgFiles.length > 0) {\n // Directory contains .nupkg files - copy them\n for (const nupkgFile of nupkgFiles) {\n const filePath = Path.join(packagePath, nupkgFile);\n const destPath = Path.join(destinationPath, nupkgFile);\n const data = await this.fileSystem.readFile(filePath);\n\n if (!data) {\n throw new Error(\n translate.t(\n \"solutionpackager.packager.errors.failedToReadPackage\",\n {\n path: filePath,\n },\n ),\n );\n }\n\n await this.fileSystem.writeFile(destPath, data);\n destinationPackages.push(destPath);\n }\n } else {\n // Directory contains unpacked NuGet content (e.g., content/, lib/) -\n // use NugetPackager to create the .nupkg file\n const nupkgFileName = `${packageInfo.id}.${packageInfo.version}.nupkg`;\n const destPath = Path.join(destinationPath, nupkgFileName);\n const packResult = await this.nugetPackager.packAsync(\n packagePath,\n packageInfo,\n destPath,\n );\n destinationPackages.push(packResult.outputPath);\n }\n } else {\n const fileName =\n packagePath.split(/[\\\\/]/).pop() || packagePath;\n const destPath = Path.join(destinationPath, fileName);\n const data = await this.fileSystem.readFile(packagePath);\n\n if (!data) {\n throw new Error(\n translate.t(\n \"solutionpackager.packager.errors.failedToReadPackage\",\n {\n path: packagePath,\n },\n ),\n );\n }\n\n await this.fileSystem.writeFile(destPath, data);\n destinationPackages.push(destPath);\n }\n }\n\n return destinationPackages;\n }\n}\n"],"names":["JSON","en","I18nManager","de","es","esMX","fr","ja","ko","pt","ptBR","ro","ru","tr","zhCN","zhTW","zu","RulesConfigFileType","PackagerParameters","LogLevel","ProjectRestoreOptions","ProjectValidateOptions","ProjectBuildOptions","ProjectPackOptions","PackService","packageId","Error","PackagerParametersValidator","_options","_cancellationToken","ToolResult","destinationPath","error","translate","ToolErrorCodes","validateOptions","stat","errorMessage","String","errorLog","logger","fileSystem","ProjectBuildOptionsValidator","options","ProjectLoader","projectPath","projectFilePath","Path","projectFileExists","webAppManifestPath","webAppManifestExists","fileContent","json","TextDecoder","projectData","projectType","folderName","ProjectTypes","TelemetryNames","ProjectPackOptionsBuilder","parameters","project","packageInfo","undefined","packService","ProjectPackOptionsValidator","cancellationToken","destinationResult","ProjectToolExecutor","context","tool","signingInfo","result","signResult","operation","disposeResult","Promise","packages","certificatePath","signResults","packagePath","failedResult","toolsFactory","telemetry","packageSignService","ProjectValidateOptionsValidator","globalLogHandler","logMessage","formattedMessage","console","setGlobalLogHandler","handler","ToolLogger","message","LogMessage","logLevel","source","sourceTarget","ToolsFactory","solutionName","factory","getSourceTarget","segments","repository","ProjectPackager","input","operationId","inputPath","entries","innerPath","uiPathProject","loadedProject","restoreOptions","validationResult","buildOptions","projectPackOptions","destinationPackages","packageStreams","data","name","operationName","telemetryName","operationResult","packagePaths","files","nupkgFiles","f","nupkgFile","filePath","destPath","nupkgFileName","packResult","fileName","telemetryService","defaultToolsFactoryRepository","TemporaryStorageService","ZipService","NugetPackager"],"mappings":"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"}
|