/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/dotnet-deps-parser@6.1.3/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DepType=exports.isSupportedByV3GraphGeneration=exports.isSupportedByV2GraphGeneration=exports.extractProps=exports.extractTargetFrameworksFromProjectAssetsJson=exports.extractTargetFrameworksFromProjectJson=exports.extractTargetFrameworksFromProjectConfig=exports.extractTargetFrameworksFromProjectFile=exports.extractTargetFrameworksFromFiles=exports.extractSdkAndRollForwardPolicyFromGlobalJson=exports.extractProjectSdkFromProjectFile=exports.containsPackageReference=exports.buildDepTreeFromFiles=exports.buildDepTreeFromProjectAssetsJson=exports.buildDepTreeFromProjectJson=exports.buildDepTreeFromProjectFile=exports.buildDepTreeFromPackagesConfig=void 0,require("source-map-support/register");const fs=require("fs"),path=require("path"),error_catalog_nodejs_public_1=require("@snyk/error-catalog-nodejs-public"),jsonc=require("jsonc-parser"),parsers_1=require("./parsers");Object.defineProperty(exports,"DepType",{enumerable:!0,get:function(){return parsers_1.DepType}});const project_assets_json_parser_1=require("./parsers/project-assets-json-parser"),PROJ_FILE_EXTENSIONS=[".csproj",".vbproj",".fsproj"];function buildDepTreeFromProjectJson(e,r=!1){const o=JSON.parse(e.trim());return(0,parsers_1.getDependencyTreeFromProjectJson)(o,r)}function buildDepTreeFromProjectAssetsJson(e,r){if(!r)throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.MissingPayloadError("Missing targetFramework for project.assets.json");const o=JSON.parse(e.trim());return(0,project_assets_json_parser_1.getDependencyTreeFromProjectAssetsJson)(o,r)}async function buildDepTreeFromPackagesConfig(e,r=!1){const o=await(0,parsers_1.parseXmlFile)(e);return(0,parsers_1.getDependencyTreeFromPackagesConfig)(o,r)}async function buildDepTreeFromProjectFile(e,r=!1,o={}){const t=await(0,parsers_1.parseXmlFile)(e);return(0,parsers_1.getDependencyTreeFromProjectFile)(t,r,o)}function buildDepTreeFromFiles(e,r,o=!1,t){if(!e||!r)throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.MissingPayloadError("Missing required parameters for building dependency tree from files");const s=path.resolve(e,r);if(!fs.existsSync(s))throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.CannotGetFileFromSourceError("No packages.config, project.json or project file found",{location:s});const a=fs.readFileSync(s,"utf-8"),n=path.extname(s);if(PROJ_FILE_EXTENSIONS.includes(n))return buildDepTreeFromProjectFile(a,o);if(r.endsWith("packages.config"))return buildDepTreeFromPackagesConfig(a,o);if(r.endsWith("project.json"))return buildDepTreeFromProjectJson(a,o);if(r.endsWith("project.assets.json"))return buildDepTreeFromProjectAssetsJson(a,t);throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.UnsupportedManifestFileError("Unsupported file, please provide either packages.config or project file.",{location:r})}function isSupportedByV2GraphGeneration(e){var r;if(!e.startsWith("net"))return!1;if(e.startsWith("netcoreapp"))return!1;if(e.includes(".")){const o=/net(?<major>\d)\.(?<minor>\d)/gm.exec(e);if(o){return parseInt((null===(r=o.groups)||void 0===r?void 0:r.major)||"0",10)>=5}return!0}return!1}function isSupportedByV3GraphGeneration(e,r){return!!e&&["Microsoft.NET.Sdk","MSBuild.Sdk.Extras","MSTest.Sdk","Uno.Sdk","Godot.NET.Sdk"].some((e=>(r||"").startsWith(e)))}function extractTargetFrameworksFromFiles(e,r){if(!e||!r)throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.MissingPayloadError("Missing required parameters for extractTargetFrameworksFromFiles()");const o=path.resolve(e,r);if(!fs.existsSync(o))throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.CannotGetFileFromSourceError("No project file found",{location:o});const t=fs.readFileSync(o,"utf-8"),s=path.extname(o);if(PROJ_FILE_EXTENSIONS.includes(s))return extractTargetFrameworksFromProjectFile(t);if(r.endsWith("packages.config"))return extractTargetFrameworksFromProjectConfig(t);if(r.endsWith("project.json"))return extractTargetFrameworksFromProjectJson(t);if(r.endsWith("project.assets.json"))return extractTargetFrameworksFromProjectAssetsJson(t);throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.UnsupportedManifestFileError("Unsupported file, please provide a project *.csproj, *.vbproj, *.fsproj or packages.config file.",{location:r})}async function extractProjectSdkFromProjectFile(e){const r=await(0,parsers_1.parseXmlFile)(e);return(0,parsers_1.getSdkFromProjectFile)(r)}async function extractTargetFrameworksFromProjectFile(e){const r=await(0,parsers_1.parseXmlFile)(e);return(0,parsers_1.getTargetFrameworksFromProjectFile)(r)}async function extractTargetFrameworksFromProjectConfig(e){const r=await(0,parsers_1.parseXmlFile)(e);return(0,parsers_1.getTargetFrameworksFromProjectConfig)(r)}async function containsPackageReference(e){var r,o;const t=await(0,parsers_1.parseXmlFile)(e);return-1!==(null!==(o=null===(r=null==t?void 0:t.Project)||void 0===r?void 0:r.ItemGroup)&&void 0!==o?o:[]).findIndex((e=>"object"==typeof e&&"PackageReference"in e))}async function extractTargetFrameworksFromProjectJson(e){let r;try{r=JSON.parse(e.trim())}catch(e){throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.UnparseableManifestError("Failed to parse manifest file")}return(0,parsers_1.getTargetFrameworksFromProjectJson)(r)}async function extractTargetFrameworksFromProjectAssetsJson(e){let r;try{r=JSON.parse(e.trim())}catch(e){throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.UnparseableManifestError("Failed to parse manifest file")}return(0,parsers_1.getTargetFrameworksFromProjectAssetsJson)(r)}function extractSdkAndRollForwardPolicyFromGlobalJson(e){var r,o;try{const t=jsonc.parse(e);return{sdk:null===(r=null==t?void 0:t.sdk)||void 0===r?void 0:r.version,rollForward:null===(o=null==t?void 0:t.sdk)||void 0===o?void 0:o.rollForward}}catch(e){throw new Error(`Extracting target framework failed with error ${e.message}`)}}async function extractProps(e){const r=await(0,parsers_1.parseXmlFile)(e);if(!r)throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.MissingPayloadError("Empty xml file");return(0,parsers_1.getPropertiesMap)(r)}exports.buildDepTreeFromProjectJson=buildDepTreeFromProjectJson,exports.buildDepTreeFromProjectAssetsJson=buildDepTreeFromProjectAssetsJson,exports.buildDepTreeFromPackagesConfig=buildDepTreeFromPackagesConfig,exports.buildDepTreeFromProjectFile=buildDepTreeFromProjectFile,exports.buildDepTreeFromFiles=buildDepTreeFromFiles,exports.isSupportedByV2GraphGeneration=isSupportedByV2GraphGeneration,exports.isSupportedByV3GraphGeneration=isSupportedByV3GraphGeneration,exports.extractTargetFrameworksFromFiles=extractTargetFrameworksFromFiles,exports.extractProjectSdkFromProjectFile=extractProjectSdkFromProjectFile,exports.extractTargetFrameworksFromProjectFile=extractTargetFrameworksFromProjectFile,exports.extractTargetFrameworksFromProjectConfig=extractTargetFrameworksFromProjectConfig,exports.containsPackageReference=containsPackageReference,exports.extractTargetFrameworksFromProjectJson=extractTargetFrameworksFromProjectJson,exports.extractTargetFrameworksFromProjectAssetsJson=extractTargetFrameworksFromProjectAssetsJson,exports.extractSdkAndRollForwardPolicyFromGlobalJson=extractSdkAndRollForwardPolicyFromGlobalJson,exports.extractProps=extractProps;
//# sourceMappingURL=/sm/d2abc7543872390575576c1c544584ceb63fc4de08bcbb4e8f625ca154d787e3.map