/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/mongodb-download-url@1.8.8/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.clearCache=void 0,exports.getDownloadURL=getDownloadURL;const os_1=__importDefault(require("os")),path_1=__importDefault(require("path")),semver_1=__importDefault(require("semver")),version_list_1=require("./version-list");Object.defineProperty(exports,"clearCache",{enumerable:!0,get:function(){return version_list_1.clearCache}});const linux_distro_1=require("./linux-distro"),util_1=require("util"),debug_1=__importDefault(require("debug")),debug=(0,debug_1.default)("mongodb-download-url");function getPriority(r,e){for(const{value:i,priority:t}of r)if(i===e)return t;return 0}function maximizer(r,e){let i,t=-1/0;for(const o of r){const r=e(o);r>t&&(t=r,i=o)}return i}function parseArch(r){return["i686","i386","x86","ia32"].includes(r)?["i686","i386","x86","ia32"]:["x86_64","x64"].includes(r)?["x86_64","x64"]:["arm64","aarch64"].includes(r)?["arm64","aarch64"]:["ppc64","ppc64le"].includes(r)?["ppc64","ppc64le"]:[r]}async function parseTarget(r,e,i,t){if("linux"===e){const e=[];let o;r&&(e.push({value:r,priority:1e3}),i.includes("x86_64")&&("amzn64"!==r&&"amazon1"!==r||e.push({value:"amazon",priority:900}),"amazon"!==r&&"amazon1"!==r||e.push({value:"amzn64",priority:900}))),i.includes("x86_64")?e.push({value:"linux_x86_64",priority:1}):i.includes("i686")&&e.push({value:"linux_i686",priority:1});try{e.push(...await(0,linux_distro_1.getCurrentLinuxDistro)())}catch(r){o=r}if(void 0===r&&o&&("*"===t||"latest-alpha"===t||semver_1.default.gte(t,"4.0.0")))throw o;return e}return"sunos"===e?[{value:"sunos5",priority:1}]:["win32","windows"].includes(e)?i.includes("i686")?[{value:"windows",priority:1},{value:"windows_i686",priority:10}]:[{value:"windows",priority:1},{value:"windows_x86_64",priority:10},{value:"windows_x86_64-2008plus",priority:10},{value:"windows_x86_64-2008plus-ssl",priority:100},{value:"windows_x86_64-2012plus",priority:100}]:["darwin","osx","macos"].includes(e)?[{value:"osx",priority:1},{value:"osx-ssl",priority:10},{value:"darwin",priority:1},{value:"macos",priority:1}]:[{value:e,priority:1}]}async function resolve(r){var e,i,t,o,a;let n,s;if("latest-alpha"===r.version&&r.enterprise){const e=r.target.map((({value:r})=>r)),i=r.arch.includes("arm64")?"arm64":"x86_64";let t,o;e.includes("macos")?(t=`https://downloads.mongodb.com/osx/mongodb-macos-${i}-enterprise-latest.tgz`,o="macos"):e.includes("linux_x86_64")?(o=maximizer(r.target,(r=>r.priority)).value,t=`https://downloads.mongodb.com/linux/mongodb-linux-${i}-enterprise-${o}-latest.tgz`):e.includes("windows_x86_64")&&(o="windows",t=`https://downloads.mongodb.com/windows/mongodb-windows-${i}-enterprise-latest.zip`),t&&(n={target:o,edition:"enterprise",arch:"x86_64",archive:{url:t,sha1:"",sha256:"",debug_symbols:""}})}if(!n){if(s=await(0,version_list_1.getVersion)(r),!s)throw new Error(`Could not find version matching ${(0,util_1.inspect)(r)}`);const e=maximizer(s.downloads.map((e=>{if(r.enterprise){if("enterprise"!==e.edition)return{value:e,priority:0}}else if("targeted"!==e.edition&&"base"!==e.edition)return{value:e,priority:0};if(!e.arch||!r.arch.includes(e.arch))return{value:e,priority:0};return{value:e,priority:getPriority(r.target,e.target)}})),(r=>r.priority));e&&e.priority>0&&(n=e.value)}if(!n)throw new Error(`Could not find download URL for version ${null==s?void 0:s.version} ${(0,util_1.inspect)(r)}`);const l=r.cryptd&&n.target,u=r.crypt_shared&&n.target;if(u&&!n.crypt_shared&&!n.csfle)throw new Error(`No crypt_shared library download for version ${null==s?void 0:s.version} available ${(0,util_1.inspect)(r)}`);debug("fully resolved",JSON.stringify(r,null,2),n);let{url:d}=u?null!==(e=n.crypt_shared)&&void 0!==e?e:n.csfle:null!==(i=l?n.cryptd:null)&&void 0!==i?i:n.archive;return l&&(d=d.replace("mongodb-shell-windows","mongodb-cryptd-windows")),{...r,name:"mongodb",url:d,arch:n.arch,distro:n.target,platform:n.target,filenamePlatform:n.target,version:null!==(t=null==s?void 0:s.version)&&void 0!==t?t:"*",artifact:path_1.default.basename(d),debug:!1,enterprise:"enterprise"===n.edition,branch:"master",bits:["i386","i686"].includes(n.arch)?"32":"64",ext:null!==(a=null===(o=d.match(/\.([^.]+)$/))||void 0===o?void 0:o[1])&&void 0!==a?a:"tgz"}}async function options(r={}){var e,i,t,o;if(null!==(e=(r="string"==typeof r?{version:r}:{...r}).crypt_shared)&&void 0!==e||(r.crypt_shared=r.csfle),r.cryptd&&r.crypt_shared)throw new Error("Cannot request both cryptd and csfle package");r.bits&&!r.arch&&(r.arch=32==+r.bits?"ia32":"x64"),r.arch||(r.arch=os_1.default.arch()),r.platform||(r.platform=os_1.default.platform()),r.version||(r.version=process.env.MONGODB_VERSION||"stable"),r.productionOnly&&(r.allowedTags=["production_release"]),"stable"===r.version||"latest"===r.version||"*"===r.version?(r.version="*",null!==(i=r.allowedTags)&&void 0!==i||(r.allowedTags=["production_release"])):"rapid"===r.version||"continuous"===r.version?(r.version="*",null!==(t=r.allowedTags)&&void 0!==t||(r.allowedTags=["production_release","continuous_release"])):"unstable"===r.version&&(r.version="*",null!==(o=r.allowedTags)&&void 0!==o||(r.allowedTags=["*"]));const a={...r,arch:parseArch(r.arch),target:[],enterprise:!!r.enterprise,cryptd:!!r.cryptd,crypt_shared:!!r.crypt_shared,version:r.version};return a.target=await parseTarget(r.distro,r.platform,a.arch,a.version),a}async function getDownloadURL(r){const e=await options(r);return debug("Building URL for options `%j`",e),await resolve(e)}exports.default=getDownloadURL;
//# sourceMappingURL=/sm/f08d1be8f709b6ce156ccd9f9b27e8fb250cd939637942001832584ffee3446c.map