@bepack/cli 0.1.0-beta.2 → 0.1.0-beta.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/cli.js CHANGED
@@ -5,6 +5,6 @@ import{lstatSync as e,promises as t,readFileSync as n,statSync as r}from"node:fs
5
5
  `)})}this.examples.length>0&&a.push({title:`Examples`,body:this.examples.map(t=>typeof t==`function`?t(e):t).join(`
6
6
  `)}),i&&(a=i(a)||a),console.info(a.map(e=>e.title?`${e.title}:\n${e.body}`:e.body).join(`
7
7
 
8
- `))}outputVersion(){let{name:e}=this.cli,{versionNumber:t}=this.cli.globalCommand;t&&console.info(`${e}/${t} ${fe}`)}checkRequiredArgs(){let e=this.args.filter(e=>e.required).length;if(this.cli.args.length<e)throw new le(`missing required args for command \`${this.rawName}\``)}checkUnknownOptions(){let{options:e,globalCommand:t}=this.cli;if(!this.config.allowUnknownOptions){for(let n of Object.keys(e))if(n!==`--`&&!this.hasOption(n)&&!t.hasOption(n))throw new le(`Unknown option \`${n.length>1?`--${n}`:`-${n}`}\``)}}checkOptionValue(){let{options:e,globalCommand:t}=this.cli,n=[...t.options,...this.options];for(let t of n){let r=e[t.name.split(`.`)[0]];if(t.required){let e=n.some(e=>e.negated&&e.names.includes(t.name));if(r===!0||r===!1&&!e)throw new le(`option \`${t.rawName}\` value is missing`)}}}checkUnusedArgs(){let e=this.args.some(e=>e.variadic)?1/0:this.args.length;if(e<this.cli.args.length)throw new le(`Unused args: ${this.cli.args.slice(e).map(e=>`\`${e}\``).join(`, `)}`)}},me=class extends pe{constructor(e){super(`@@global@@`,``,{},e)}},he=class extends EventTarget{name;commands;globalCommand;matchedCommand;matchedCommandName;rawArgs;args;options;showHelpOnExit;showVersionOnExit;constructor(e=``){super(),this.name=e,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new me(this),this.globalCommand.usage(`<command> [options]`)}usage(e){return this.globalCommand.usage(e),this}command(e,t,n){let r=new pe(e,t||``,n,this);return r.globalCommand=this.globalCommand,this.commands.push(r),r}option(e,t,n){return this.globalCommand.option(e,t,n),this}help(e){return this.globalCommand.option(`-h, --help`,`Display this message`),this.globalCommand.helpCallback=e,this.showHelpOnExit=!0,this}version(e,t=`-v, --version`){return this.globalCommand.version(e,t),this.showVersionOnExit=!0,this}example(e){return this.globalCommand.example(e),this}outputHelp(){this.matchedCommand?this.matchedCommand.outputHelp():this.globalCommand.outputHelp()}outputVersion(){this.globalCommand.outputVersion()}setParsedInfo({args:e,options:t},n,r){return this.args=e,this.options=t,n&&(this.matchedCommand=n),r&&(this.matchedCommandName=r),this}unsetMatchedCommand(){this.matchedCommand=void 0,this.matchedCommandName=void 0}parse(e,{run:t=!0}={}){if(!e){if(!de)throw Error(`No argv provided and runtime process argv is not available.`);e=de}this.rawArgs=e,this.name||=e[1]?se(e[1]):`cli`;let n=!0;for(let t of this.commands){let r=this.mri(e.slice(2),t),i=r.args[0];if(t.isMatched(i)){n=!1;let e={...r,args:r.args.slice(1)};this.setParsedInfo(e,t,i),this.dispatchEvent(new CustomEvent(`command:${i}`,{detail:t}))}}if(n){for(let t of this.commands)if(t.isDefaultCommand){n=!1;let r=this.mri(e.slice(2),t);this.setParsedInfo(r,t),this.dispatchEvent(new CustomEvent(`command:!`,{detail:t}))}}if(n){let t=this.mri(e.slice(2));this.setParsedInfo(t)}this.options.help&&this.showHelpOnExit&&(this.outputHelp(),t=!1,this.unsetMatchedCommand()),this.options.version&&this.showVersionOnExit&&this.matchedCommandName==null&&(this.outputVersion(),t=!1,this.unsetMatchedCommand());let r={args:this.args,options:this.options};return t&&this.runMatchedCommand(),!this.matchedCommand&&this.args[0]&&this.dispatchEvent(new CustomEvent(`command:*`,{detail:this.args[0]})),r}mri(e,t){let n=[...this.globalCommand.options,...t?t.options:[]],r=P(n),i=[],a=e.indexOf(`--`);a!==-1&&(i=e.slice(a+1),e=e.slice(0,a));let o=N(e,r);o=Object.keys(o).reduce((e,t)=>({...e,[ce(t)]:o[t]}),{_:[]});let s=o._,c={"--":i},l=t&&t.config.ignoreOptionDefaultValue?t.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,u=Object.create(null);for(let e of n){if(!l&&e.config.default!==void 0)for(let t of e.names)c[t]=e.config.default;Array.isArray(e.config.type)&&u[e.name]===void 0&&(u[e.name]=Object.create(null),u[e.name].shouldTransform=!0,u[e.name].transformFunction=e.config.type[0])}for(let e of Object.keys(o))e!==`_`&&(F(c,e.split(`.`),o[e]),oe(c,u));return{args:s,options:c}}runMatchedCommand(){let{args:e,options:t,matchedCommand:n}=this;if(!n||!n.commandAction)return;n.checkUnknownOptions(),n.checkOptionValue(),n.checkRequiredArgs(),n.checkUnusedArgs();let r=[];return n.args.forEach((t,n)=>{t.variadic?r.push(e.slice(n)):r.push(e[n])}),r.push(t),n.commandAction.apply(this,r)}};const ge=(e=``)=>new he(e);function _e(e,t){try{return JSON.parse(e)}catch(e){throw Error(`Invalid JSON in ${t}: ${e instanceof Error?e.message:String(e)}`)}}function ve(e){return`${JSON.stringify(e,null,4)}\n`}var ye=D((()=>{}));async function I(e){try{return await t.access(e),!0}catch{return!1}}async function be(e){await t.mkdir(e,{recursive:!0})}async function xe(e){await t.rm(e,{recursive:!0,force:!0}),await t.mkdir(e,{recursive:!0})}async function Se(e){return _e(await t.readFile(e,`utf8`),e)}async function Ce(e,n){await be(o.dirname(e)),await t.writeFile(e,ve(n),`utf8`)}async function we(e,n){await t.rm(n,{recursive:!0,force:!0}),await t.mkdir(o.dirname(n),{recursive:!0}),await t.cp(e,n,{recursive:!0})}var Te=D((()=>{ye()})),L,R=D((()=>{L=class extends Error{code;details;suggestions;constructor(e,t,n={}){super(t),this.name=`BePackError`,this.code=e,this.details=n.details,this.suggestions=n.suggestions}}})),Ee=/* @__PURE__ */ O(((e,t)=>{let n=process||{},r=n.argv||[],i=n.env||{},a=!(i.NO_COLOR||r.includes(`--no-color`))&&(!!i.FORCE_COLOR||r.includes(`--color`)||n.platform===`win32`||(n.stdout||{}).isTTY&&i.TERM!==`dumb`||!!i.CI),o=(e,t,n=e)=>r=>{let i=``+r,a=i.indexOf(t,e.length);return~a?e+s(i,t,n,a)+t:e+i+t},s=(e,t,n,r)=>{let i=``,a=0;do i+=e.substring(a,r)+n,a=r+t.length,r=e.indexOf(t,a);while(~r);return i+e.substring(a)},c=(e=a)=>{let t=e?o:()=>String;return{isColorSupported:e,reset:t(`\x1B[0m`,`\x1B[0m`),bold:t(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:t(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:t(`\x1B[3m`,`\x1B[23m`),underline:t(`\x1B[4m`,`\x1B[24m`),inverse:t(`\x1B[7m`,`\x1B[27m`),hidden:t(`\x1B[8m`,`\x1B[28m`),strikethrough:t(`\x1B[9m`,`\x1B[29m`),black:t(`\x1B[30m`,`\x1B[39m`),red:t(`\x1B[31m`,`\x1B[39m`),green:t(`\x1B[32m`,`\x1B[39m`),yellow:t(`\x1B[33m`,`\x1B[39m`),blue:t(`\x1B[34m`,`\x1B[39m`),magenta:t(`\x1B[35m`,`\x1B[39m`),cyan:t(`\x1B[36m`,`\x1B[39m`),white:t(`\x1B[37m`,`\x1B[39m`),gray:t(`\x1B[90m`,`\x1B[39m`),bgBlack:t(`\x1B[40m`,`\x1B[49m`),bgRed:t(`\x1B[41m`,`\x1B[49m`),bgGreen:t(`\x1B[42m`,`\x1B[49m`),bgYellow:t(`\x1B[43m`,`\x1B[49m`),bgBlue:t(`\x1B[44m`,`\x1B[49m`),bgMagenta:t(`\x1B[45m`,`\x1B[49m`),bgCyan:t(`\x1B[46m`,`\x1B[49m`),bgWhite:t(`\x1B[47m`,`\x1B[49m`),blackBright:t(`\x1B[90m`,`\x1B[39m`),redBright:t(`\x1B[91m`,`\x1B[39m`),greenBright:t(`\x1B[92m`,`\x1B[39m`),yellowBright:t(`\x1B[93m`,`\x1B[39m`),blueBright:t(`\x1B[94m`,`\x1B[39m`),magentaBright:t(`\x1B[95m`,`\x1B[39m`),cyanBright:t(`\x1B[96m`,`\x1B[39m`),whiteBright:t(`\x1B[97m`,`\x1B[39m`),bgBlackBright:t(`\x1B[100m`,`\x1B[49m`),bgRedBright:t(`\x1B[101m`,`\x1B[49m`),bgGreenBright:t(`\x1B[102m`,`\x1B[49m`),bgYellowBright:t(`\x1B[103m`,`\x1B[49m`),bgBlueBright:t(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:t(`\x1B[105m`,`\x1B[49m`),bgCyanBright:t(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:t(`\x1B[107m`,`\x1B[49m`)}};t.exports=c(),t.exports.createColors=c}));Te(),R();var De=/* @__PURE__ */ A(Ee(),1);const z=De.default.createColors(process.env.NO_COLOR===void 0&&process.env.FORCE_COLOR!==`0`);var Oe=class{options;constructor(e={}){this.options=e}formatDuration(e){return z.green(`${(e/1e3).toFixed(2)}s`)}info(e){this.options.silent||console.log(e)}warn(e){this.options.silent||console.warn(z.yellow(e))}error(e){this.options.silent||console.error(z.red(e))}verbose(e){!this.options.silent&&this.options.verbose&&console.log(z.gray(e))}clear(){this.options.silent||console.clear()}step(e,t,n=`cyan`){this.info(`${z[n](e.padEnd(10))} ${t}`)}progress(e,t){this.step(e,t,`blue`)}success(e,t){this.step(e,t,`green`)}bepack(e,t){this.info(`${z.green(`bepack`)} ${z.bold(e)} ${z.gray(t)}`)}manifest(e){this.step(`manifest`,e,`yellow`)}typescript(e){this.step(`TS`,e,`blue`)}rolldown(e){this.step(`rolldown`,e,`magenta`)}install(e){this.step(`install`,e,`blue`)}copy(e){this.step(`copy`,e,`cyan`)}pack(e){this.step(`pack`,e,`magenta`)}hook(e,t){this.step(`hook`,`${e}: ${t}`,`gray`)}timing(e,t){this.step(`timing`,`${e.padEnd(14)} ${t} ms`,`gray`)}done(e,t){this.info(`${z.green(`√`)} ${z.green(e)} ${t}`)}};function ke(e){return Array.isArray(e)&&e.length===3&&typeof e[0]==`number`&&typeof e[1]==`number`&&typeof e[2]==`number`}function Ae(e){return typeof e==`string`&&/^\d+\.\d+\.\d+$/.test(e)}function je(e){return e===3?Ae:ke}function Me(e,t){return e===3?`${t} must be SemVer string like "x.y.z" (format 3)`:`${t} must be [number, number, number] (format 2)`}function Ne(e,t){let n=[];for(let r of Pe){let i=r(e,t);i!==null&&(Array.isArray(i)?n.push(...i):n.push(i))}if(n.length>0)throw new L(`MANIFEST_INVALID`,`Manifest validation failed: ${n.join(`; `)}`)}var Pe,Fe=D((()=>{Pe=[e=>e.format_version===void 0?`format_version is required`:null,e=>e.header?null:`header is required`,e=>e.header&&!e.header.name?`header.name is required`:null,e=>e.header&&!e.header.uuid?`header.uuid is required`:null,e=>e.header?je(e.format_version)(e.header.version)?null:Me(e.format_version,`header.version`):null,e=>e.header?je(e.format_version)(e.header.min_engine_version)?null:Me(e.format_version,`header.min_engine_version`):null,e=>e.modules!==void 0&&!Array.isArray(e.modules)?`modules must be an array`:null,(e,t)=>{if(!Array.isArray(e.modules))return null;let n=e.modules.some(e=>e?.type===`resources`),r=[];return t===`rp`&&!n&&r.push(`RP manifest must have a resources module`),r.length>0?r:null},e=>{if(!Array.isArray(e.modules))return null;let t=je(e.format_version),n=[];for(let r=0;r<e.modules.length;r++){let i=e.modules[r];i&&i.version!==void 0&&i.version!==null&&!t(i.version)&&n.push(`modules[${r}] (uuid: ${i.uuid??`unknown`}): ${Me(e.format_version,`version`)}`)}return n.length>0?n:null},e=>e.dependencies!==void 0&&!Array.isArray(e.dependencies)?`dependencies must be an array`:null,e=>{if(!Array.isArray(e.dependencies))return null;let t=je(e.format_version),n=[];for(let r=0;r<e.dependencies.length;r++){let i=e.dependencies[r];if(!i){n.push(`dependencies[${r}] is invalid`);continue}`uuid`in i&&i.uuid&&!t(i.version)&&n.push(`dependencies[${r}] (uuid: ${i.uuid}): ${Me(e.format_version,`version`)}`),`module_name`in i&&i.module_name&&typeof i.version!=`string`&&n.push(`dependencies[${r}] (module_name: ${i.module_name}): version must be a string`)}return n.length>0?n:null},e=>e.capabilities===void 0?null:Array.isArray(e.capabilities)?e.capabilities.every(e=>typeof e==`string`)?null:`capabilities must be an array of strings`:`capabilities must be an array`,e=>e.metadata!==void 0&&(typeof e.metadata!=`object`||e.metadata===null)?`metadata must be an object`:null]}));function Ie(e){return!e||typeof e!=`object`||Array.isArray(e)?{}:{...e}}function Le(e){return Array.isArray(e)?e:[]}var Re,ze=D((()=>{R(),Fe(),Re=class{static async read(e){if(!await I(e))return;let n=await t.readFile(e,`utf8`);try{return Ie(JSON.parse(n))}catch{throw new L(`MANIFEST_INVALID`,`Invalid JSON in manifest: ${e}`)}}static async write(e,t,n){Ne(t,n),await Ce(e,t)}}}));function Be(e){let t=/^(\d+)\.(\d+)\.(\d+)$/.exec(e);if(!t)throw new L(`VERSION_INVALID`,`Manifest version requires x.y.z.`,{details:{version:e}});return[Number(t[1]),Number(t[2]),Number(t[3])]}function Ve(e){return/^\d+\.\d+\.\d+(?:[-.][0-9A-Za-z.-]+)?$/.test(e)}function B(e,t){let n=e.split(/[^0-9A-Za-z]+/),r=t.split(/[^0-9A-Za-z]+/),i=Math.max(n.length,r.length);for(let e=0;e<i;e+=1){let t=n[e]??``,i=r[e]??``,a=/^\d+$/.test(t)?Number(t):NaN,o=/^\d+$/.test(i)?Number(i):NaN,s=Number.isNaN(a)||Number.isNaN(o)?t.localeCompare(i):a-o;if(s!==0)return s}return 0}function He(e){return e===`latest`||B(e,`1.21.120`)>=0}function Ue(e){let t=/^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/.exec(e.trim());if(!t)return;let n=/(?:^|[.-])(\d+)\.(\d+)\.(\d+)(?:[.-]|$)/.exec(t[4]??``);return{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3]),...n?{minecraftTarget:[Number(n[1]),Number(n[2]),Number(n[3])]}:{}}}function We(e,t){for(let n of[`major`,`minor`,`patch`])if(e[n]!==t[n])return e[n]-t[n];return 0}function Ge(e,t){let n=Ue(e);return n?t.split(`||`).some(e=>{let t=/(?:\^|~|>=|<=|>|<|=)?\s*(v?\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?)/.exec(e.trim()),r=t?Ue(t[1]):void 0;return!r||n.major!==r.major||We(n,r)<0?!1:r.minecraftTarget?n.minecraftTarget?B(n.minecraftTarget.join(`.`),r.minecraftTarget.join(`.`))>=0:!1:!0}):!1}var Ke=D((()=>{R()}));function qe(e){if(e===`stable`||e===`beta`||e===`preview`)throw new L(`DEPENDENCY_VERSION_INVALID`,`${e} must be resolved from npm registry before writing package.json.`,{details:{specifier:e}});if(Ve(e))return e;throw new L(`DEPENDENCY_VERSION_INVALID`,`Unsupported dependency version: ${e}`,{details:{specifier:e}})}function Je(e){return e.filter(e=>/^\d+\.\d+\.\d+$/.test(e)).sort(B)}function Ye(e){return e.filter(e=>/(?:^|[-.])beta(?:[-.]|$)/i.test(e)).sort(B)}var Xe,Ze=D((()=>{Ke(),R(),Xe=class{npm;logger;constructor(e,t){this.npm=e,this.logger=t}latestStable(e,t){let n=this.npm.distTag(t,`latest`);if(n&&/^\d+\.\d+\.\d+$/.test(n))return this.logger?.verbose(`Resolved ${e}@stable -> ${n}`),n;let r=Je(this.npm.versions(t)).at(-1);if(!r)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve latest stable version for ${e}.`,{details:{package:e}});return this.logger?.verbose(`Resolved ${e}@stable -> ${r}`),r}latestBeta(e,t){let n=this.npm.distTag(t,`beta`);if(n)return this.logger?.verbose(`Resolved ${e}@beta -> ${n}`),n;let r=Ye(this.npm.versions(t)).at(-1);if(!r)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve latest beta version for ${e}.`,{details:{package:e}});return this.logger?.verbose(`Resolved ${e}@beta -> ${r}`),r}betaForTarget(e,t,n){let r=t.replace(/\./g,`\\.`),i=RegExp(`beta[-.]${r}-stable`),a=this.npm.versions(n).filter(e=>i.test(e)).sort(B).at(-1);if(!a)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve ${e}@beta for target ${t}.`,{details:{package:e,specifier:`beta`,target:t},suggestions:[`Use target: "latest"`,`Specify an exact version`,`Update BePack`,`Manually edit package.json and manifest.json`]});return this.logger?.verbose(`Resolved ${e}@beta for target ${t} -> ${a}`),a}inferStableFromBeta(e,t,n,r){let i=/^(\d+)\.(\d+)\.(\d+)-beta[.-]/.exec(n);if(!i)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot infer stable version from ${e}@${n}.`,{details:{package:e,beta:n,target:t}});let a=Number(i[1]),o=Number(i[2])-1,s=`${a}.${o}.${Number(i[3])}`;if(o<0||!r.versions?.[s])throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot confirm inferred stable version ${s} for ${e}.`,{details:{package:e,target:t,beta:n,inferredStable:s}});return s}}}));function Qe(e,t){return t===`latest`||He(t)?`beta`:/^(\d+\.\d+\.\d+-beta)/i.exec(e)?.[1]??e}function $e(e,t,n){let r=Ye(t).filter(e=>/^\d+\.\d+\.\d+-beta\.\d+\.\d+\.\d+/.test(e)).filter(e=>!/(?:rc|beta)\.\d+\.\d+\.\d+-preview\.\d+$/i.test(e)).at(-1);if(!r)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve latest beta version for ${e}.`,{details:{package:e}});return n?.verbose(`Resolved ${e}@beta -> ${r}`),r}function et(e){return e.filter(e=>/(?:rc|beta)\.\d+\.\d+\.\d+-preview\.\d+$/i.test(e)).sort(B)}function tt(e,t,n){let r=et(t).at(-1);if(!r)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve latest preview version for ${e}.`,{details:{package:e}});return n?.verbose(`Resolved ${e}@preview -> ${r}`),r}function nt(e,t,n,r){let i=n.replace(/\./g,`\\.`),a=RegExp(`(?:rc|beta)\\.${i}-preview\\.\\d+$`),o=t.filter(e=>a.test(e)).sort(B).at(-1);if(!o)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve ${e}@preview for target ${n}.`,{details:{package:e,specifier:`preview`,target:n},suggestions:[`Use target: "latest"`,`Specify an exact version`]});return r?.verbose(`Resolved ${e}@preview for target ${n} -> ${o}`),o}var rt,it=D((()=>{Ke(),Ze(),R(),rt={name:`minecraft-script-api`,resolver:`minecraft-script-api`,match:e=>e.specifier===`stable`||e.specifier===`beta`||e.specifier===`preview`,async resolve(e){let t=await e.npm.metadata(e.packageName),n=new Xe(e.npm,e.logger);if(e.specifier===`stable`){e.logger?.verbose(`Resolving ${e.packageName}@stable for target ${e.target}`);let r=e.target===`latest`?n.latestStable(e.packageName,t):n.inferStableFromBeta(e.packageName,e.target,n.betaForTarget(e.packageName,e.target,t),t);return{packageVersion:r,manifestVersion:r}}if(e.specifier===`beta`){e.logger?.verbose(`Resolving ${e.packageName}@beta for target ${e.target}`);let r=e.target===`latest`?$e(e.packageName,e.npm.versions(t),e.logger):n.betaForTarget(e.packageName,e.target,t);return{packageVersion:r,manifestVersion:Qe(r,e.target)}}e.logger?.verbose(`Resolving ${e.packageName}@preview for target ${e.target}`);let r=e.target===`latest`?tt(e.packageName,e.npm.versions(t),e.logger):nt(e.packageName,e.npm.versions(t),e.target,e.logger);return{packageVersion:r,manifestVersion:r}}}})),at,ot=D((()=>{Ze(),it(),at={name:`minecraft-script-api-bp`,resolver:`minecraft-script-api-bp`,match:e=>e.specifier===`beta`||e.specifier===`preview`,async resolve(e){let t=await e.npm.metadata(e.packageName),n=new Xe(e.npm,e.logger);if(e.specifier===`beta`){e.logger?.verbose(`Resolving ${e.packageName}@beta for target ${e.target}`);let r=e.target===`latest`?$e(e.packageName,e.npm.versions(t),e.logger):n.betaForTarget(e.packageName,e.target,t);return{packageVersion:r,manifestVersion:Qe(r,e.target)}}e.logger?.verbose(`Resolving ${e.packageName}@preview for target ${e.target}`);let r=e.target===`latest`?tt(e.packageName,e.npm.versions(t),e.logger):nt(e.packageName,e.npm.versions(t),e.target,e.logger);return{packageVersion:r,manifestVersion:r}}}}));function st(e,t){if(e.logger?.verbose(`Resolving ${e.packageName}@stable for target ${e.target}`),e.target===`latest`){let n=e.npm.distTag(t,`latest`);if(n&&lt.test(n))return e.logger?.verbose(`Resolved ${e.packageName}@stable -> ${n}`),{packageVersion:n};let r=e.npm.versions(t).filter(e=>lt.test(e)).sort(B).at(-1);if(!r)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve latest stable version for ${e.packageName}.`,{details:{package:e.packageName}});return e.logger?.verbose(`Resolved ${e.packageName}@stable -> ${r}`),{packageVersion:r}}if(t.versions?.[e.target])return e.logger?.verbose(`Resolved ${e.packageName}@stable for target ${e.target} -> ${e.target}`),{packageVersion:e.target};throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve ${e.packageName}@stable for target ${e.target}. The target version does not exist in the registry.`,{details:{package:e.packageName,specifier:`stable`,target:e.target},suggestions:[`Use target: "latest"`,`Specify an exact version`]})}function ct(e,t){if(e.logger?.verbose(`Resolving ${e.packageName}@preview for target ${e.target}`),e.target===`latest`){let n=e.npm.versions(t).filter(e=>ut.test(e)).sort(B).at(-1);if(!n)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve latest preview version for ${e.packageName}.`,{details:{package:e.packageName}});return e.logger?.verbose(`Resolved ${e.packageName}@preview -> ${n}`),{packageVersion:n}}let n=e.target.replace(/\./g,`\\.`),r=RegExp(`^${n}-preview\\.\\d+$`),i=e.npm.versions(t).filter(e=>r.test(e)).sort(B).at(-1);if(!i)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve ${e.packageName}@preview for target ${e.target}. No matching preview version found.`,{details:{package:e.packageName,specifier:`preview`,target:e.target},suggestions:[`Use target: "latest"`,`Specify an exact preview version`]});return e.logger?.verbose(`Resolved ${e.packageName}@preview for target ${e.target} -> ${i}`),{packageVersion:i}}var lt,ut,dt,ft=D((()=>{R(),Ke(),lt=/^\d+\.\d+\.\d+$/,ut=/^\d+\.\d+\.\d+-preview\.\d+$/,dt={name:`minecraft-vanilla-data`,resolver:`minecraft-vanilla-data`,match:e=>e.specifier===`stable`||e.specifier===`preview`,async resolve(e){let t=await e.npm.metadata(e.packageName);return e.specifier===`stable`?st(e,t):ct(e,t)}}})),pt,mt=D((()=>{it(),ot(),ft(),pt={"@minecraft/common":{resolver:rt,manifest:!0},"@minecraft/server":{resolver:rt,manifest:!0},"@minecraft/server-ui":{resolver:rt,manifest:!0},"@minecraft/server-net":{resolver:at,manifest:!0},"@minecraft/server-admin":{resolver:at,manifest:!0},"@minecraft/server-gametest":{resolver:at,manifest:!0},"@minecraft/debug-utilities":{resolver:at,manifest:!0},"@minecraft/diagnostics":{resolver:at,manifest:!0},"@minecraft/server-graphics":{resolver:at,manifest:!0},"@minecraft/server-editor":{resolver:at,manifest:!0},"@minecraft/vanilla-data":{resolver:dt,manifest:!1}}}));ze(),R(),mt();var ht=class e{static validateHeader(e,t){if(!e.header?.name||!e.header?.uuid)throw new L(`MANIFEST_INVALID`,`${t} manifest is missing header.name or header.uuid`);return{name:e.header.name,uuid:e.header.uuid,...e.header.description?{description:e.header.description}:{}}}static findScriptModuleUuid(t){for(let n of t.modules??[])if(n&&e.isScriptModule(n))return n.uuid}static findScriptModuleEntry(t){for(let n of t.modules??[])if(n&&e.isScriptModule(n))return n.entry}static findResourcesModuleUuid(t){for(let n of t.modules??[])if(n&&e.isResourcesModule(n))return n.uuid}static matchDependencies(e){let t={};for(let n of e.dependencies??[])if(`module_name`in n&&typeof n.module_name==`string`){let e=n.module_name;pt[e]&&(t[e]=typeof n.version==`string`?n.version:String(n.version))}return t}static isScriptModule(e){return e?.type===`script`&&e?.language===`javascript`}static isResourcesModule(e){return e?.type===`resources`}};Te(),R();function gt(e,t){if(typeof e!=`string`||!e)throw new L(`MANIFEST_INVALID`,`${t} script module entry must be a non-empty string.`);let n=e.replace(/\\/g,`/`);if(o.posix.isAbsolute(n)||o.win32.isAbsolute(n))throw new L(`MANIFEST_INVALID`,`${t} script module entry must be a relative path, got absolute: "${e}".`);if(!n.endsWith(`.js`))throw new L(`MANIFEST_INVALID`,`${t} script module entry must end with .js, got: "${e}".`);let r=n.split(`/`);if(r.includes(`..`))throw new L(`MANIFEST_INVALID`,`${t} script module entry must not contain "..": "${e}".`);if(r.includes(``))throw new L(`MANIFEST_INVALID`,`${t} script module entry must not contain empty segments: "${e}".`);return n}function _t(e,t){let n=o.resolve(e,t),r=o.dirname(n),i=o.relative(e,r);if(i.startsWith(`..`)||o.isAbsolute(i))throw new L(`CONFIG_INVALID`,`Manifest path is outside the project directory: ${t}`);return i||`.`}async function vt(e,t){if(!t&&await I(e))throw new L(`CONFIG_INVALID`,`Config file already exists: ${e}. Use --force to overwrite.`,{suggestions:[`Pass --force to overwrite the existing file.`]});await be(o.dirname(e))}async function yt(e,n,r){return await vt(e,r),await t.writeFile(e,n,`utf8`),!0}function bt(e){return`export default ${JSON.stringify(e,null,4).replace(/\n( +)"([a-zA-Z_$][a-zA-Z0-9_$]*)": /g,`
9
- $1$2: `)}\n`}function xt(e){if(e){if(Array.isArray(e))return e.join(`.`);if(typeof e==`string`)return e}}function St(e,t){return e[0]===t[0]?e[1]===t[1]?e[2]-t[2]:e[1]-t[1]:e[0]-t[0]}function Ct(e){if(Array.isArray(e)&&e.length===3)return e;if(typeof e==`string`){let t=e.split(`.`).map(Number);if(t.length===3&&t.every(e=>!Number.isNaN(e)))return t}}async function wt(e,t){let n=t.format??`ts`;if(![`ts`,`js`,`mjs`].includes(n))throw new L(`CONFIG_INVALID`,`init --format must be ts, js, or mjs.`);let r=o.join(e,`bepack.config.${n}`),i=!!t.force,a=new Oe({silent:t.silent,verbose:t.verbose}),s=!!t.fromBp,c=!!t.fromRp,l,u,d,f=!1,p,m,h,g,_,v,y=[];if(s){let n=o.resolve(e,t.fromBp),r=await Re.read(n);if(!r)throw new L(`CONFIG_NOT_FOUND`,`BP manifest not found: ${t.fromBp}`);d??=r.format_version,r.format_version!==void 0&&r.header?.version!==void 0&&(r.format_version===3&&Array.isArray(r.header.version)||r.format_version===2&&typeof r.header.version==`string`)&&(f=!0);let i=ht.validateHeader(r,`BP`),a=ht.findScriptModuleUuid(r),s=ht.findScriptModuleEntry(r),c=xt(r.header?.version);c&&y.push(c),l={root:_t(e,n),uuid:i.uuid,...a?{moduleUuid:a}:{},...c?{version:c}:{},deps:ht.matchDependencies(r),...s?{scriptEntry:s}:{}},p=i.name,m=i.description,h=i.name,g=i.description}if(c){let n=o.resolve(e,t.fromRp),r=await Re.read(n);if(!r)throw new L(`CONFIG_NOT_FOUND`,`RP manifest not found: ${t.fromRp}`);d??=r.format_version,r.format_version!==void 0&&r.header?.version!==void 0&&(r.format_version===3&&Array.isArray(r.header.version)||r.format_version===2&&typeof r.header.version==`string`)&&(f=!0);let i=ht.validateHeader(r,`RP`),a=ht.findResourcesModuleUuid(r);if(!a)throw new L(`MANIFEST_INVALID`,`RP manifest is missing a resources module with uuid`);let c=xt(r.header?.version);c&&y.push(c),u={root:_t(e,n),uuid:i.uuid,moduleUuid:a,...c?{version:c}:{}},s||(p=i.name,m=i.description),_=i.name,v=i.description}let b;if(y.length===1)b=y[0];else if(y.length===2){let e=y[0],t=y[1];if(e===t)b=e;else{let n=Ct(e),r=Ct(t);b=n&&r?St(n,r)>=0?e:t:e,a.warn(`BP version (${e}) and RP version (${t}) differ. Using ${b}.`)}}f&&(a.warn(`Detected format_version ${d} doesn't match the actual version format used in manifest. Falling back to format_version 2.`),d=2);let x={root:`.`,target:`latest`,pack:{outDir:`dist`}};d!==void 0&&(x.manifestFormat=d),b&&(x.version=b),p&&(x.name=p),m&&(x.description=m);let S={};if(l){let e={root:l.root,uuid:l.uuid};if(l.moduleUuid){if(e.moduleUuid=l.moduleUuid,l.scriptEntry){let t=gt(l.scriptEntry,`BP`),n=o.posix.dirname(t),r=o.posix.basename(t,`.js`);if(n===`.`)throw new L(`MANIFEST_INVALID`,`BP manifest script entry "${l.scriptEntry}" is at the BP root. BePack cannot safely manage root-level script output because the output directory would need to be emptied on each build, which would delete the entire BP root. Please add a subdirectory prefix to the script module entry in your manifest.json (e.g. "scripts/main.js"), then rerun init.`);e.compile={entry:`src/${r}.ts`,scriptOutputDir:n}}else e.compile={entry:`src/main.ts`}}h&&(e.name=h),g&&(e.description=g),Object.keys(l.deps).length>0&&(e.dependencies={...l.deps}),S.bp=e}if(u){let e={root:u.root,uuid:u.uuid,moduleUuid:u.moduleUuid};_&&(e.name=_),v&&(e.description=v),S.rp=e}return x.packs=S,process.platform===`win32`&&(x.copy={defaultTarget:`win`}),{ok:!0,command:`init`,filesCreated:[await yt(r,bt(x),i)].filter(Boolean).length}}function Tt(){return bt({root:`.`,name:`example-addon`,version:`1.0.0`,target:`latest`,packs:{bp:{root:`bp`,uuid:l(),moduleUuid:l(),compile:{entry:`src/main.ts`},dependencies:{"@minecraft/server":`stable`}}},pack:{outDir:`dist`}})}async function Et(e){let t=o.resolve(e.cwd??process.cwd());if(e.fromBp||e.fromRp)return await wt(t,e);let n=e.format??`ts`;if(![`ts`,`js`,`mjs`].includes(n))throw new L(`CONFIG_INVALID`,`init --format must be ts, js, or mjs.`);return{ok:!0,command:`init`,filesCreated:[await yt(o.join(t,`bepack.config.${n}`),Tt(),!!e.force)].filter(Boolean).length}}const Dt=[`bepack.config.ts`,`bepack.config.mjs`,`bepack.config.js`],V={root:`.`,configured:{root:!1,packOutDir:!1},name:`minecraft-addon`,version:`1.0.0`,description:``,replace:{values:{},builtins:{VERSION:!1,NAME:!1,UUID:!1,DESCRIPTION:!1}},target:`latest`,plugins:[],install:{registry:`https://registry.npmjs.org/`,saveTo:`dependencies`,packageManager:`auto`,runPackageManager:!0,updatePackageJson:!0,updateManifest:!0,dependencyCatalog:{},dependencyResolvers:[]},build:{copy:!1,timing:!1},dev:{copy:!1},copy:{defaultTarget:``,targets:{}},pack:{name:`{name}-{version}`,outDir:`dist`},hooks:{}},Ot={dev:!0,build:!1,file:`node_modules/.cache/bepack/tsconfig.tsbuildinfo`},kt={keepLooseFiles:!1,keepLoose:[],exclude:[],minifyJson:!0,packOptimizationVersion:`0.1.0`,allowUnsupportedTarget:!1},At={entry:`src/main.ts`,define:{},tsconfig:`tsconfig.json`,typecheck:!0,preserveModules:!0,external:[/^@minecraft\/server.*/],useNpx:!1,minify:!1,cache:Ot,scriptOutputDir:`scripts`},jt=[`world`,`global`,`any`];function Mt(e){let t=[];return e.packs.bp&&t.push({type:`bp`,root:e.packs.bp.root,uuid:e.packs.bp.uuid,...e.packs.bp.moduleUuid===void 0?{}:{moduleUuid:e.packs.bp.moduleUuid},name:e.packs.bp.name,include:e.packs.bp.include}),e.packs.rp&&t.push({type:`rp`,root:e.packs.rp.root,uuid:e.packs.rp.uuid,moduleUuid:e.packs.rp.moduleUuid,name:e.packs.rp.name,include:e.packs.rp.include}),t}var Nt,Pt,Ft=D((()=>{Nt=[`scripts`,`manifest.json`,`animation_controllers`,`animations`,`biomes`,`blocks`,`entities`,`functions`,`items`,`loot_tables`,`pack_icon.png`,`recipes`,`shapes`,`spawn_rules`,`structures`,`texts`,`trading`,`feature_rules`,`features`,`worldgen`],Pt=[]}));function It(e,t){return o.isAbsolute(t)?t:o.join(e,t)}function H(e){return e.replace(/\\/g,`/`)}function U(e,t){return It(e,t.root)}function W(e,t,n){return n===`bp`?t.packs.bp?It(e,t.packs.bp.root):void 0:t.packs.rp?It(e,t.packs.rp.root):void 0}function Lt(e,t){let n=W(U(e,t),t,`bp`);if(!n)throw Error(`packs.bp is not configured`);return n}function Rt(e,t){let n=W(U(e,t),t,`rp`);if(!n)throw Error(`packs.rp is not configured`);return n}function zt(e){return!!e.packs.bp?.compile}function Bt(e,t){if(t.packs.bp?.compile)return It(U(e,t),t.packs.bp.compile.entry)}function Vt(e,t){if(!t.packs.bp)return;let n=t.packs.bp.compile?.scriptOutputDir??`scripts`;return o.join(Lt(e,t),n)}function Ht(e,t){let n=Vt(e,t);if(!n)return;if(!t.packs.bp?.compile)return o.join(n,`main.js`);let r=o.basename(t.packs.bp.compile.entry,o.extname(t.packs.bp.compile.entry));return o.join(n,`${r}.js`)}function Ut(e,t){let n=o.relative(e,t);return n===``||!n.startsWith(`..${o.sep}`)&&n!==`..`&&!o.isAbsolute(n)}function Wt(e,t,n){if(!t||t===`.`)throw new L(`CONFIG_INVALID`,`compile.scriptOutputDir must be a non-empty relative path strictly inside the BP root. Got: "${t}". This directory will be emptied during build.`);let r=t.replace(/\\/g,`/`);if(o.posix.isAbsolute(r)||o.win32.isAbsolute(r))throw new L(`CONFIG_INVALID`,`compile.scriptOutputDir must be a relative path, not absolute. Got: "${t}". This directory will be emptied during build.`);let i=o.posix.normalize(r);if(i.split(`/`).includes(`..`))throw new L(`CONFIG_INVALID`,`compile.scriptOutputDir must not contain ".." (path escape). Got: "${t}" resolves outside the BP root. This directory will be emptied during build.`);let a=o.resolve(e,i),s=o.relative(e,a);if(!s||s.startsWith(`..`)||o.isAbsolute(s))throw new L(`CONFIG_INVALID`,`compile.scriptOutputDir must be a directory strictly inside the BP root. Value: "${t}", resolved: "${a}". This directory will be emptied during build and must not be the BP root or a path outside it.`);if(n&&Ut(a,n))throw new L(`CONFIG_INVALID`,`compile.scriptOutputDir "${t}" dangerously overlaps with the source entry directory. The output directory will be emptied during build and would delete source files.`);return H(s)}function Gt(e,t,n,i=[]){let a=o.resolve(e),s=o.resolve(t),c=[s,...i.map(e=>o.resolve(e))];for(let t of c)if(Ut(a,t))throw new L(`BUILD_FAILED`,`Safety check failed: ${n} "${e}" would overwrite a protected path ("${t}"). Refusing to empty this directory.`);try{if(!r(a).isDirectory())throw new L(`BUILD_FAILED`,`Safety check failed: ${n} "${e}" is not a directory. Refusing to empty a non-directory path.`)}catch(e){if(e?.code!==`ENOENT`)throw e}let l=o.relative(s,a);if(!l||l.startsWith(`..`)||o.isAbsolute(l))throw new L(`BUILD_FAILED`,`Safety check failed: ${n} "${e}" is not inside the BP root "${t}". Refusing to empty this directory.`)}function Kt(e){let t=[e.packs.bp?.compile?.scriptOutputDir??`scripts`,...Nt.filter(e=>e!==`scripts`)],n=e.packs.bp?.include??[],r=[...t,...n],i=/* @__PURE__ */ new Set;return r.filter(e=>!i.has(e)&&(i.add(e),!0))}function qt(e,t){if(t.packs.bp)return o.join(Lt(e,t),`manifest.json`)}function Jt(e,t){if(t.packs.rp)return o.join(Rt(e,t),`manifest.json`)}function Yt(e,t){return It(U(e,t),t.pack.outDir)}function Xt(e){let t=/* @__PURE__ */ new Set;return e.filter(e=>{let n=H(o.resolve(e)),r=Zt?n:n.toLowerCase();return!t.has(r)&&(t.add(r),!0)})}var Zt,G=D((()=>{R(),Ft(),Zt=d()!==`win32`}));G();const Qt={VERSION:e=>e.version,NAME:e=>e.name,UUID:e=>e.packs.bp?.uuid??``,DESCRIPTION:e=>e.packs.bp?.description??e.description??``};function $t(e){return Object.fromEntries(Object.entries(e.replace.values).map(([t,n])=>[t,typeof n==`function`?n(e):n]))}function en(e){let t=$t(e),n=Object.fromEntries(Object.entries(e.replace.builtins).filter(([,e])=>e).map(([t])=>[`**${t}**`,Qt[t](e)])),r={...t,...n};return Object.keys(r).length===0?[]:[f(r,{delimiters:[``,``]})]}function tn(e){return{values:e?.values??{},builtins:{VERSION:e?.builtins?.VERSION??!1,NAME:e?.builtins?.NAME??!1,UUID:e?.builtins?.UUID??!1,DESCRIPTION:e?.builtins?.DESCRIPTION??!1}}}R();function nn(e){let t={...e??{}};for(let[e,n]of Object.entries(t))try{Function(`return (${n});`)}catch{throw new L(`CONFIG_INVALID`,`packs.bp.compile.define["${e}"] is not a valid JavaScript expression: ${n}. Define values must be expression strings, e.g. JSON.stringify("server") or "true".`,{details:{defineKey:e,defineValue:n}})}return t}function rn(e){return Object.keys(e).length>0?{transform:{define:e}}:void 0}Ke(),Ze();const an={name:`exact-version`,match:e=>Ve(e.specifier),resolve(e){return e.logger?.verbose(`Using exact ${e.packageName}@${e.specifier}`),{packageVersion:qe(e.specifier),manifestVersion:e.specifier}}};R(),it(),ot(),ft();const on=[rt,at,dt,an];var sn=class e{resolvers;pluginNames=/* @__PURE__ */ new Map;constructor(e,t=[]){this.resolvers=e;for(let e of t)for(let t of e.install?.dependencyResolvers??[])this.pluginNames.set(t,e.name)}static fromConfig(t,n=[]){return new e([...t,...on],n)}resolverMatchesCatalog(e,t){let n=e.entry.resolver;if(!n)return!0;let r=typeof n==`string`?n:n.name;return t.resolver===void 0||t.resolver===r}find(e){let t;for(let n of this.resolvers)if(this.resolverMatchesCatalog(e,n))try{if(n.match(e)){t=n;break}}catch(e){let t=this.pluginNames.get(n);throw t?new L(`PLUGIN_FAILED`,`Plugin ${t} resolver ${n.name} match failed: ${e instanceof Error?e.message:String(e)}`):e}if(!t)throw new L(`DEPENDENCY_VERSION_INVALID`,`${e.packageName} dependency version is invalid: ${e.specifier}`,{details:{package:e.packageName,specifier:e.specifier,resolver:e.entry.resolver}});return e.logger?.verbose(`Resolving ${e.packageName}@${e.specifier} with ${t.name}`),t}async resolve(e){let t=this.find(e);try{return await t.resolve(e)}catch(e){let n=this.pluginNames.get(t);throw n?new L(`PLUGIN_FAILED`,`Plugin ${n} resolver ${t.name} failed: ${e instanceof Error?e.message:String(e)}`):e}}};mt(),R(),Ke();const cn=`sapi-pro`,ln=[`@minecraft/server`,`@minecraft/server-ui`];function un(e){return/(?:beta|preview|alpha|rc)/i.test(e)}function dn(e){return un(e)?`beta`:`stable`}function fn(e){let t=/^(\d+)\.(\d+)\./.exec(e);return!!t&&(Number(t[1])>0||Number(t[2])>=4)}function pn(e){return{...e.dependencies??{},...e.peerDependencies??{}}}async function mn(e,t,n,r){let i=e.config.packs.bp?.dependencies??{},a={...pt,...e.config.install.dependencyCatalog},o=sn.fromConfig(e.config.install.dependencyResolvers.filter(e=>e!==gn),e.config.plugins);for(let[s,c]of Object.entries(t)){if(!s.startsWith(`@minecraft/`))continue;let t=i[s],l=a[s];if(!t||!l)return r.add(s),!1;let u;if(n.has(s)?u=n.get(s):(u=await o.resolve({packageName:s,specifier:t,target:e.target,entry:l,config:e.config,npm:e.npm,...e.logger?{logger:e.logger}:{}}),n.set(s,u)),!u||ln.includes(s)&&un(c)!==un(u.packageVersion)||!Ge(u.packageVersion,c))return!1}return!0}function hn(e,t){if(t!==`stable`&&t!==`beta`){let n=e[t];return n?[[t,n]]:[]}return Object.entries(e).filter(([e,n])=>{if(!fn(e))return!1;let r=pn(n);return Object.keys(r).length===0?!1:t===`stable`?/-stable(?:\.\d+)?$/i.test(e):/^\d+\.\d+\.\d+$/.test(e)}).sort(([e],[t])=>B(e,t)).reverse()}const gn={name:`sapi-pro`,resolver:`sapi-pro`,match:e=>e.specifier===`stable`||e.specifier===`beta`||/^\d+\.\d+\.\d+(?:-[\w.-]+)?$/.test(e.specifier),async resolve(e){let t=await e.npm.metadata(cn),n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ new Set;for(let[i,a]of hn(t.versions??{},e.specifier))if(await mn(e,pn(a),n,r))return/^0\.3\./.test(i)&&e.logger?.warn(`sapi-pro@${i} uses legacy metadata; compatibility is best-effort only.`),{packageVersion:i,manifestVersion:null};throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot find a compatible ${cn}@${e.specifier} for target ${e.target}.${r.size>0?` Missing explicit dependencies: ${[...r].join(`, `)}.`:``}`,{details:{package:cn,specifier:e.specifier,target:e.target},suggestions:[`Explicitly declare the @minecraft packages required by sapi-pro.`,`Use a compatible target or specify an exact sapi-pro version.`]})}};function _n(){return{name:`sapi-pro`,apiVersion:1,description:`Resolve sapi-pro versions compatible with BePack Script API dependencies.`,configResolved:({config:e})=>{let t=e.packs.bp?.dependencies??{},n=t[cn];if(!n)return;let r=ln.filter(e=>!t[e]);if(r.length>0)throw Error(`sapi-pro requires explicit dependencies: ${r.join(`, `)}.`);if(n===`stable`||n===`beta`)for(let e of ln){let r=t[e];if(dn(r)!==n)throw Error(`sapi-pro ${n} requires ${e} to use ${n}, received ${r}.`)}},install:{dependencyCatalog:{[cn]:{resolver:`sapi-pro`,manifest:!1}},dependencyResolvers:[gn]}}}const vn={"sapi-pro":_n};R();function K(e){return e?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):{}}function yn(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e==`function`?`function`:typeof e==`object`?`object`:typeof e==`string`?JSON.stringify(e):String(e)}function bn(e,t){let n={};(e.packs?.bp||t.packs?.bp)&&(n.bp={...e.packs?.bp??{},...K(t.packs?.bp)}),(e.packs?.rp||t.packs?.rp)&&(n.rp={...e.packs?.rp??{},...K(t.packs?.rp)});let r={...e.copy?.targets??{},...K(t.copy?.targets)},i=K(t);return{...e,...i,...t.plugins!==void 0||e.plugins!==void 0?{plugins:t.plugins??e.plugins}:{},packs:n,install:{...e.install,...K(t.install)},build:{...e.build,...K(t.build)},dev:{...e.dev,...K(t.dev)},copy:{...e.copy,...K(t.copy),targets:r},pack:{...e.pack,...K(t.pack)},hooks:{...e.hooks,...K(t.hooks)}}}function xn(e){let t=(e??[]).map(e=>{if(typeof e!=`string`)return e;let t=vn[e];if(!t)throw new L(`CONFIG_INVALID`,`Unknown built-in plugin: ${e}.`);return t()}),n=/* @__PURE__ */ new Set;for(let e of t){if(!e?.name||e.name.trim()===``)throw new L(`CONFIG_INVALID`,`Every plugin must have a non-empty name.`);if(n.has(e.name))throw new L(`CONFIG_INVALID`,`Plugin name is duplicated: ${e.name}.`);if(e.apiVersion!==void 0&&e.apiVersion!==1)throw new L(`CONFIG_INVALID`,`Plugin ${e.name} requires unsupported BePack plugin API version ${e.apiVersion}.`);if(e.priority!==void 0&&!Number.isFinite(e.priority))throw new L(`CONFIG_INVALID`,`Plugin ${e.name} priority must be a finite number.`);n.add(e.name)}return t.sort((e,t)=>(t.priority??0)-(e.priority??0))}function Sn(e,t){let n=/* @__PURE__ */ new Set;for(let r of[...e.map(e=>e.hooks),t])for(let e of Object.keys(r??{}))n.add(e);return Object.fromEntries([...n].map(n=>{let r=[...e.map(e=>({plugin:e,hook:e.hooks?.[n]})).filter(e=>e.hook!==void 0),...t?.[n]?[{hook:t[n]}]:[]];return[n,async(...e)=>{let t;for(let i of r)try{t=await i.hook(...e)}catch(e){let t=`plugin`in i?i.plugin:void 0;throw t?new L(`PLUGIN_FAILED`,`Plugin ${t.name} ${String(n)} hook failed: ${e instanceof Error?e.message:String(e)}`):e}return t}]}))}function Cn(e,t){let n={},r=/* @__PURE__ */ new Map,i=[];for(let t of e)for(let[e,a]of Object.entries(t.install?.dependencyCatalog??{})){let o=r.get(e);if(o){i.push(`dependency catalog ${e}: plugin ${o} takes precedence over plugin ${t.name}`);continue}n[e]=a,r.set(e,t.name)}for(let[e,a]of Object.entries(t)){let t=r.get(e);t&&i.push(`dependency catalog ${e}: project config overrides plugin ${t}`),n[e]=a}return{catalog:n,diagnostics:i}}function wn(e,t,n){let r=At,i=e?.scriptOutputDir??r.scriptOutputDir,a=o.resolve(n,e?.entry??r.entry),s=Wt(t,i,o.dirname(a));return{entry:e?.entry??r.entry,define:nn(e?.define),tsconfig:e?.tsconfig??r.tsconfig,typecheck:e?.typecheck??r.typecheck,preserveModules:e?.preserveModules??r.preserveModules,external:e?.external??r.external,useNpx:e?.useNpx??r.useNpx,minify:e?.minify??r.minify,cache:u(e?.cache),scriptOutputDir:s,...e?.rolldown===void 0?{}:{rolldown:c(e.rolldown)},...e?.rolldownConfig===void 0?{}:{rolldownConfig:l(e.rolldownConfig)}};function c(e){if(typeof e==`function`||e&&typeof e==`object`&&!Array.isArray(e))return e;throw new L(`CONFIG_INVALID`,`packs.bp.compile.rolldown must be a rolldown options object or a function (options, context) => options, got: ${yn(e)}.`)}function l(e){if(typeof e!=`string`||e.trim()===``)throw new L(`CONFIG_INVALID`,`packs.bp.compile.rolldownConfig must be a non-empty path string, got: ${yn(e)}.`);return e}function u(e){let t=Ot;return{dev:e?.dev??t.dev,build:e?.build??t.build,file:e?.file??t.file}}}function Tn(e){if(e===void 0||e===!1)return;let t=e===!0?{}:e;if(typeof t!=`object`||!t||Array.isArray(t))throw new L(`CONFIG_INVALID`,`pack.optimize must be a boolean or an options object, got: ${yn(e)}.`);let n=t.packOptimizationVersion;if(n!==void 0&&(typeof n!=`string`||n.trim()===``))throw new L(`CONFIG_INVALID`,`pack.optimize.packOptimizationVersion must be a non-empty string, got: ${yn(n)}.`);return{keepLooseFiles:t.keepLooseFiles??kt.keepLooseFiles,keepLoose:t.keepLoose!==!1&&(t.keepLoose??[]).map(En),exclude:(t.exclude??[]).map(En),minifyJson:t.minifyJson??kt.minifyJson,packOptimizationVersion:n??kt.packOptimizationVersion,allowUnsupportedTarget:t.allowUnsupportedTarget??kt.allowUnsupportedTarget}}function En(e){let t=String(e).replace(/\\/g,`/`).replace(/^\.\//,``).replace(/\/+$/,``);if(!t||t.includes(`/`)||t.includes(`..`)||o.posix.isAbsolute(t))throw new L(`CONFIG_INVALID`,`pack.optimize.exclude entries must be top-level folder names (no path separators, no ".."), got: ${yn(e)}.`);return t}function Dn(e){let t=e?.merge??`preserve`;if(t!==`preserve`&&t!==`clean`)throw new L(`CONFIG_INVALID`,`manifest.merge must be "preserve" or "clean", got: ${String(e?.merge)}.`);let n=e?.minEngineVersion;if(n!==void 0&&!/^\d+\.\d+\.\d+$/.test(n))throw new L(`CONFIG_INVALID`,`manifest.minEngineVersion must be a SemVer string like "1.21.0", got: ${n}.`);return{merge:t,...n===void 0?{}:{minEngineVersion:n},extraDependencies:e?.extraDependencies??[],extraModules:e?.extraModules??[],extraHeader:e?.extraHeader??{}}}function On(e,t={},n=process.cwd()){let r=bn(e,t),i=xn(r.plugins),a=r.target??V.target;if(a===`stable`||a===`beta`)throw new L(`TARGET_INVALID`,`target must be a Minecraft game version or latest, not a Script API channel.`,{details:{target:a}});let s=!!r.packs?.bp,c=!!r.packs?.rp;if(!s&&!c)throw new L(`CONFIG_INVALID`,`At least one pack (packs.bp or packs.rp) is required.`);if(!r.name||r.name.trim()===``)throw new L(`CONFIG_INVALID`,`name is required.`);let l=r.name,u=r.version??V.version,d=r.description,f=r.packs,p=f.bp?.compile,m=f.bp,h=f.rp;if(m){if(!m.uuid)throw new L(`CONFIG_INVALID`,`packs.bp.uuid is required.`);if(m.compile&&!m.moduleUuid)throw new L(`CONFIG_INVALID`,`packs.bp.moduleUuid is required when packs.bp.compile is configured.`);if(m.root===void 0)throw new L(`CONFIG_INVALID`,`packs.bp.root is required. Set the behavior pack directory in bepack.config.ts.`);if(p?.define){let e=Object.keys(r.replace?.values??{}),t=Object.keys(p.define),n=e.filter(e=>t.includes(e));if(n.length>0)throw new L(`CONFIG_INVALID`,`Config conflict: ${n.map(e=>`"${e}"`).join(`, `)} is configured in both replace.values and packs.bp.compile.define. Use only one mechanism per key.`,{details:{overlap:n}})}}let g=o.resolve(n,r.root??`.`),_=m?o.resolve(g,m.root):void 0;if(h){if(!h.uuid||!h.moduleUuid)throw new L(`CONFIG_INVALID`,`packs.rp.uuid and packs.rp.moduleUuid are required.`);if(h.root===void 0)throw new L(`CONFIG_INVALID`,`packs.rp.root is required when packs.rp is configured.`);if(h.packScope!==void 0&&!jt.includes(h.packScope))throw new L(`CONFIG_INVALID`,`packs.rp.packScope must be one of ${jt.map(e=>`"${e}"`).join(`, `)}.`,{details:{packScope:h.packScope}})}let v=m?.description??d,y=h?.description??d,{catalog:b,diagnostics:x}=Cn(i,r.install?.dependencyCatalog??{}),S=i.flatMap(e=>e.install?.dependencyResolvers??[]),C=Tn(r.pack?.optimize),w=Tn(r.copy?.optimize);return{root:r.root??V.root,configured:{root:r.root!==void 0,packOutDir:r.pack?.outDir!==void 0},name:l,version:u,...d===void 0?{}:{description:d},replace:tn(r.replace),target:a,plugins:i,...x.length>0?{pluginDiagnostics:x}:{},...r.manifestFormat===void 0?{}:{manifestFormat:r.manifestFormat},packs:{...m?{bp:{root:m.root,uuid:m.uuid,...m.moduleUuid===void 0?{}:{moduleUuid:m.moduleUuid},name:m.name??l,...v===void 0?{}:{description:v},...p&&_?{compile:wn(p,_,g)}:{},manifest:Dn(m.manifest),dependencies:m.dependencies??{},include:m.include??[]}}:{},...h?{rp:{root:h.root,uuid:h.uuid,moduleUuid:h.moduleUuid,name:h.name??l,...y===void 0?{}:{description:y},manifest:Dn(h.manifest),...h.pbr===void 0?{}:{pbr:h.pbr},...h.packScope===void 0?{}:{packScope:h.packScope},include:h.include??[]}}:{}},install:{registry:r.install?.registry??V.install.registry,saveTo:r.install?.saveTo??V.install.saveTo,packageManager:r.install?.packageManager??V.install.packageManager,runPackageManager:r.install?.runPackageManager??V.install.runPackageManager,updatePackageJson:r.install?.updatePackageJson??V.install.updatePackageJson,updateManifest:r.install?.updateManifest??V.install.updateManifest,dependencyCatalog:b,dependencyResolvers:[...S,...r.install?.dependencyResolvers??[]]},build:{copy:r.build?.copy??V.build.copy,timing:r.build?.timing??V.build.timing},dev:{copy:r.dev?.copy??V.dev.copy,...r.dev?.watch?{watch:r.dev.watch}:{}},copy:{defaultTarget:r.copy?.defaultTarget??V.copy.defaultTarget,...r.copy?.name?{name:r.copy.name}:{},...r.copy?.include?{include:r.copy.include}:{},targets:r.copy?.targets??{},...w?{optimize:w}:{}},pack:{name:r.pack?.name??V.pack.name,outDir:r.pack?.outDir??V.pack.outDir,...C?{optimize:C}:{}},hooks:Sn(i,r.hooks)}}R(),G();async function kn(e,n){if(n){let r=It(e,n);return await t.access(r).catch(()=>{throw new L(`CONFIG_NOT_FOUND`,`Config not found: ${n}`,{details:{configPath:n}})}),r}for(let n of Dt){let r=o.join(e,n);try{return await t.access(r),r}catch{}}throw new L(`CONFIG_NOT_FOUND`,`No bepack.config.ts, bepack.config.mjs, or bepack.config.js found.`,{details:{cwd:e}})}async function An(e){try{if(e.endsWith(`.ts`))try{return await import(`${a(e).href}?t=${Date.now()}`)}catch{let n=jn(await t.readFile(e,`utf8`));return await import(`data:text/javascript;base64,${Buffer.from(n,`utf8`).toString(`base64`)}`)}return await import(`${a(e).href}?t=${Date.now()}`)}catch(t){throw new L(`CONFIG_INVALID`,`Failed to load config: ${t instanceof Error?t.message:String(t)}`,{details:{file:e},suggestions:[`Use bepack.config.mjs/js for complex config logic.`,`Keep bepack.config.ts free of TypeScript-only runtime syntax.`]})}}function jn(e){return e.replace(/^\s*import\s+type\s+[^;]+;\s*$/gm,``).replace(/\s+satisfies\s+[A-Za-z_$][\w$<>,\s.[\]|&{}]*/g,``).replace(/\((\s*[A-Za-z_$][\w$]*)\s*:\s*[^)=]+?\)\s*=>/g,`($1) =>`)}async function Mn(e,t){for(let n of e.plugins??[])if(n.configResolved)try{await n.configResolved({cwd:t,config:e})}catch(e){throw new L(`PLUGIN_FAILED`,`Plugin ${n.name} configResolved hook failed: ${e instanceof Error?e.message:String(e)}`)}}async function Nn(e){let t=o.resolve(e.cwd),n=await kn(t,e.configPath),r=await An(n);if(r.default===void 0)throw new L(`CONFIG_INVALID`,`Config must use default export.`,{details:{file:n}});let i=On(r.default,e.overrides,t);return await Mn(i,t),{config:i,path:n,cwd:t}}function Pn(e){return{...pt,...e.install.dependencyCatalog}}function Fn(e,t){let n=e[t];if(!n)throw new L(`UNSUPPORTED_DEPENDENCY`,`${t} is not a managed dependency. Add it to install.dependencyCatalog or remove it from packs.bp.dependencies.`,{details:{package:t}});return n}var In=D((()=>{R(),mt()}));In(),R();function Ln(e,t){e?.install?e.install(t):e?.info(`[Install] ${t}`)}var Rn=class{registry;logger;cache=/* @__PURE__ */ new Map;constructor(e,t){this.registry=e,this.logger=t}async metadata(e){let t=this.packageUrl(e),n=this.cache.get(t);if(n)return this.logger?.verbose(`Using cached metadata for ${e}`),n;Ln(this.logger,`fetching ${e} metadata from ${this.registry}`);let r=await fetch(t);if(!r.ok)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot fetch ${e} versions from registry.`,{details:{package:e,registry:this.registry,status:r.status}});let i=await r.json();return this.cache.set(t,i),this.logger?.verbose(`Fetched ${e} metadata (${Object.keys(i.versions??{}).length} versions)`),i}versions(e){return Object.keys(e.versions??{})}async versionsOf(e){return this.versions(await this.metadata(e))}distTag(e,t){let n=e[`dist-tags`]?.[t];return n&&e.versions?.[n]?n:void 0}packageUrl(e){return`${this.registry.replace(/\/$/,``)}/${encodeURIComponent(e).replace(/^%40/,`@`)}`}};R(),Ze();function zn(e){return t=>{e?.install?e.install(t):e?.info(`[Install] ${t}`)}}var Bn=class{config;logger;npm;catalog;pkgResolver;log;constructor(e,t){this.config=e,this.logger=t,this.npm=new Rn(e.install.registry,t),this.catalog=Pn(e),this.pkgResolver=new Xe(this.npm,t),this.log=zn(t)}async resolveAll(){let e={},t=this.config.packs.bp?.dependencies;if(!t||Object.keys(t).length===0)return this.log(`no BP dependencies to resolve`),e;this.log(`resolving dependencies for target ${this.config.target}`);for(let[n,r]of Object.entries(t)){let t=Fn(this.catalog,n),i=await this.resolveOne(n,r,t),a=t.manifest??!1;e[n]={specifier:r,packageVersion:i.packageVersion,manifestVersion:a?i.manifestVersion??i.packageVersion:null,manifest:a,external:a,resolver:typeof t.resolver==`string`?t.resolver:t.resolver.name},this.log(`${n}: ${r} -> package ${e[n].packageVersion}, manifest ${e[n].manifestVersion}`)}return this.logger?.verbose(`Dependency resolution complete`),e}async resolveOne(e,t,n){let r={packageName:e,specifier:t,target:this.config.target,entry:n,config:this.config};await this.runDependencyHooks(`beforeResolveDependency`,r);let i=await sn.fromConfig(this.config.install.dependencyResolvers,this.config.plugins??[]).resolve({packageName:e,specifier:t,target:this.config.target,entry:n,config:this.config,npm:this.npm,...this.logger?{logger:this.logger}:{}});return await this.runDependencyHooks(`afterResolveDependency`,{...r,result:i}),i}async runDependencyHooks(e,t){for(let n of this.config.plugins??[]){let r=n.install?.hooks?.[e];if(r)try{await r(t)}catch(t){throw new L(`PLUGIN_FAILED`,`Plugin ${n.name} ${e} hook failed: ${t instanceof Error?t.message:String(t)}`)}}}};R(),Te();async function Vn(e,t,n,r=!1){let i=o.join(e,`package.json`);if(!await I(i))throw new L(`PACKAGE_JSON_NOT_FOUND`,`package.json not found.`,{details:{cwd:e}});let a=await Se(i),s=t.install.saveTo;a.dependencies=a.dependencies??{},a.devDependencies=a.devDependencies??{};for(let e of Object.keys(n))delete a.dependencies[e],delete a.devDependencies[e];a[s]=a[s]??{};for(let[e,t]of Object.entries(n))a[s][e]=t.packageVersion;return Object.keys(a.dependencies).length||delete a.dependencies,Object.keys(a.devDependencies).length||delete a.devDependencies,r||await Ce(i,a),{updated:!0,path:`package.json`}}var Hn,Un,Wn=D((()=>{Hn=[1,21,0],Un=[1,0,0]})),Gn,Kn=D((()=>{R(),Wn(),Ke(),ze(),Gn=class{config;version;versionStr;depManager;constructor(e,t){this.config=e,this.version=Be(e.version),this.versionStr=e.version,this.depManager=t}buildBp(e){let t=this.requireBp(),n=Ie(e);this.depManager.validateBpDependencies();let r=this.getWriteFormatVersion(n);return t.manifest.merge===`clean`?this.buildCleanBp(t,r):this.buildPreserveBp(n,t,r)}buildRp(e){let t=this.requireRp(),n=Ie(e),r=this.getWriteFormatVersion(n),i=t.manifest.merge===`clean`?this.buildCleanRp(t,r):this.buildPreserveRp(n,t,r);return this.applyPbrCapability(i,t),i}buildPreserveBp(e,t,n){return{...e,format_version:n,header:this.buildBpHeader(e,t,n),...t.moduleUuid?{modules:this.replaceManagedBpModules(e.modules,t,n)}:e.modules?{modules:e.modules}:{},dependencies:this.depManager.replaceBpDependencies(e.dependencies,this.config.packs.rp?.uuid,n)}}buildPreserveRp(e,t,n){return{...e,format_version:n,header:this.buildRpHeader(e,t,n),modules:this.replaceManagedRpModules(e.modules,t,n),dependencies:this.depManager.replaceRpDependencies(e.dependencies,this.config.packs.bp?.uuid,n)}}buildCleanBp(e,t){return{format_version:t,header:this.buildBpHeaderClean(e,t),...e.moduleUuid?{modules:this.buildCleanBpModules(e,t)}:{},dependencies:this.depManager.buildBpDependenciesClean(t,this.config.packs.rp?.uuid,e.manifest.extraDependencies)}}buildCleanRp(e,t){return{format_version:t,header:this.buildRpHeaderClean(e,t),modules:this.buildCleanRpModules(e,t),dependencies:this.depManager.buildRpDependenciesClean(t,this.config.packs.bp?.uuid,e.manifest.extraDependencies)}}buildBpHeaderClean(e,t){return{...e.manifest.extraHeader,name:e.name,...e.description===void 0?{}:{description:e.description},uuid:e.uuid,version:this.getVersionFor(t),min_engine_version:this.cleanMinEngineVersion(e.manifest.minEngineVersion,t)}}buildRpHeaderClean(e,t){return{...e.manifest.extraHeader,name:e.name,...e.description===void 0?{}:{description:e.description},uuid:e.uuid,...e.packScope===void 0?{}:{pack_scope:e.packScope},version:this.getVersionFor(t),min_engine_version:this.cleanMinEngineVersion(e.manifest.minEngineVersion,t)}}buildCleanBpModules(e,t){return[...e.moduleUuid?[this.createScriptModule(e,t)]:[],...e.manifest.extraModules]}buildCleanRpModules(e,t){return[this.createResourcesModule(e,t),...e.manifest.extraModules]}buildBpHeader(e,t,n){return{...e.header??{},name:t.name,...t.description===void 0?{}:{description:t.description},uuid:t.uuid,version:this.getVersionFor(n),min_engine_version:this.normalizeMinEngineVersion(e.header?.min_engine_version,n)}}buildRpHeader(e,t,n){return{...e.header??{},name:t.name,...t.description===void 0?{}:{description:t.description},uuid:t.uuid,...t.packScope===void 0?{}:{pack_scope:t.packScope},version:this.getVersionFor(n),min_engine_version:this.normalizeMinEngineVersion(e.header?.min_engine_version,n)}}getScriptEntry(){let e=this.config.packs.bp?.compile;return e?`${e.scriptOutputDir}/${o.basename(e.entry,o.extname(e.entry))}.js`:`scripts/main.js`}isManagedBpModule(e,t){if(e.type!==`script`||e.language!==`javascript`)return!1;let n=this.getScriptEntry();return e.uuid===t.moduleUuid||e.entry===n}isManagedRpModule(e,t){return e.type===`resources`&&e.uuid===t.moduleUuid}createScriptModule(e,t){return{type:`script`,language:`javascript`,uuid:e.moduleUuid,version:this.getModuleVersion(t),entry:this.getScriptEntry()}}createResourcesModule(e,t){return{type:`resources`,uuid:e.moduleUuid,version:this.getModuleVersion(t)}}replaceManagedBpModules(e,t,n){return[...Le(e).filter(e=>!this.isManagedBpModule(e,t)),this.createScriptModule(t,n)]}replaceManagedRpModules(e,t,n){return[...Le(e).filter(e=>!this.isManagedRpModule(e,t)),this.createResourcesModule(t,n)]}applyPbrCapability(e,t){if(t.pbr===!0){let t=Le(e.capabilities);e.capabilities=t.includes(`pbr`)?t:[...t,`pbr`]}else if(t.pbr===!1){let t=Le(e.capabilities).filter(e=>e!==`pbr`);t.length>0?e.capabilities=t:delete e.capabilities}}getVersionFor(e){return e===3?this.versionStr:this.version}getModuleVersion(e){return e===3?`1.0.0`:Un}getWriteFormatVersion(e){return this.config.manifestFormat===void 0?e.format_version??2:this.config.manifestFormat}normalizeMinEngineVersion(e,t){if(e==null)return this.defaultMinEngineVersion(t);if(Array.isArray(e))return t===3?e.join(`.`):e;if(typeof e==`string`){if(t===2){let t=this.stringToVersionTuple(e);if(t)return t}return e}return this.defaultMinEngineVersion(t)}cleanMinEngineVersion(e,t){return e===void 0?this.defaultMinEngineVersion(t):t===3?e:this.stringToVersionTuple(e)??this.defaultMinEngineVersion(t)}defaultMinEngineVersion(e){return e===3?`1.21.0`:Hn}stringToVersionTuple(e){let t=e.split(`.`).map(Number);if(t.length===3&&t.every(e=>!Number.isNaN(e)))return t}requireBp(){if(!this.config.packs.bp)throw new L(`CONFIG_INVALID`,`packs.bp is required to build the BP manifest.`);return this.config.packs.bp}requireRp(){if(!this.config.packs.rp)throw new L(`CONFIG_INVALID`,`packs.rp is required to build the RP manifest.`);return this.config.packs.rp}}})),qn,Jn=D((()=>{R(),Ke(),ze(),qn=class e{config;catalog;resolvedDeps;version;versionStr;constructor(e,t,n){this.config=e,this.catalog=t,this.resolvedDeps=n??{},this.version=Be(e.version),this.versionStr=e.version}static isAllowedSpecifier(e){return e===`stable`||e===`beta`||e===`preview`||/^\d+\.\d+\.\d+(?:[-.][0-9A-Za-z.-]+)?$/.test(e)}static resolveVersion(e){let{specifier:t,target:n,resolvedVersion:r}=e;if(t===`stable`){if(r)return r;throw new L(`DEPENDENCY_REQUIRES_INSTALL`,"Run `bepack install` to resolve stable manifest dependencies.",{details:{specifier:t,target:n}})}if(t===`beta`){if(He(n))return`beta`;if(r)return r;throw new L(`DEPENDENCY_REQUIRES_INSTALL`,`Run \`bepack install\` to resolve manifest dependencies for target ${n}.`,{details:{target:n}})}if(t===`preview`){if(r)return r;throw new L(`DEPENDENCY_REQUIRES_INSTALL`,`Run \`bepack install\` to resolve preview manifest dependencies for target ${n}.`,{details:{specifier:t,target:n}})}return t}validateBpDependencies(){if(this.config.packs.bp)for(let[t,n]of Object.entries(this.config.packs.bp.dependencies)){if(!this.catalog[t]){let e=Object.keys(this.catalog),n=e.length>0?[`Managed packages: ${e.join(`, `)}.`,`Add a missing package to install.dependencyCatalog, or remove it from packs.bp.dependencies.`]:[`No managed packages are available. Extend install.dependencyCatalog to add one.`];throw new L(`UNSUPPORTED_DEPENDENCY`,`${t} is not a managed dependency.`,{details:{package:t},suggestions:n})}if(!e.isAllowedSpecifier(n))throw new L(`DEPENDENCY_VERSION_INVALID`,`${t} dependency version is invalid: ${n}`,{details:{package:t,specifier:n}})}}isManagedBpDependency(e){return!!(`module_name`in e&&typeof e.module_name==`string`&&this.catalog[e.module_name]?.manifest||`uuid`in e&&typeof e.uuid==`string`&&this.config.packs.rp?.uuid===e.uuid)}isManagedRpDependency(e,t){return t!==void 0&&`uuid`in e&&typeof e.uuid==`string`&&e.uuid===t}buildManagedDependencies(){if(!this.config.packs.bp)return[];let t=[];for(let[n,r]of Object.entries(this.config.packs.bp.dependencies))this.catalog[n]?.manifest&&t.push({module_name:n,version:e.resolveVersion({specifier:r,target:this.config.target,resolvedVersion:this.resolvedDeps[n]})});return t}getFormatAwareVersion(e){return(e??this.config.manifestFormat??2)===3?this.versionStr:this.version}replaceBpDependencies(e,t,n){let r=Le(e).filter(e=>!this.isManagedBpDependency(e)),i=this.buildManagedDependencies();return t&&i.push({uuid:t,version:this.getFormatAwareVersion(n)}),[...r,...i]}replaceRpDependencies(e,t,n){let r=Le(e).filter(e=>!this.isManagedRpDependency(e,t));return t?[...r,{uuid:t,version:this.getFormatAwareVersion(n)}]:r}buildBpDependenciesClean(e,t,n){let r=this.buildManagedDependencies();return t&&r.push({uuid:t,version:this.getFormatAwareVersion(e)}),[...r,...n]}buildRpDependenciesClean(e,t,n){let r=[];return t&&r.push({uuid:t,version:this.getFormatAwareVersion(e)}),[...r,...n]}}})),Yn=/* @__PURE__ */ ee({patchManifest:()=>Xn});async function Xn(e){let t=Pn(e.config),n=e.config.packs.bp?qt(e.cwd,e.config):void 0,r=n?await Re.read(n):void 0,i=Zn(r,t),a=new qn(e.config,t,e.resolvedDeps?{...i,...e.resolvedDeps}:i),s=new Gn(e.config,a),c={};if(e.config.packs.bp){let t=r!==void 0;e.config.manifestFormat===2&&r?.format_version===3&&(e.logger?.warn??console.warn)(`Warning: config manifestFormat is 2, but existing manifest uses format_version 3. format_version 2 does not support string versions; any string versions in the existing manifest will be preserved as-is.`);let i=s.buildBp(r);e.dryRun||await Re.write(n,i,`bp`),c.bpManifest={path:H(o.relative(e.cwd,n)),updated:!0,existed:t}}if(e.config.packs.rp){let t=Jt(e.cwd,e.config),n=await Re.read(t),r=n!==void 0,i=s.buildRp(n);e.dryRun||await Re.write(t,i,`rp`),c.rpManifest={path:H(o.relative(e.cwd,t)),updated:!0,existed:r}}return c}function Zn(e,t){let n={};for(let r of e?.dependencies??[])`module_name`in r&&typeof r.module_name==`string`&&typeof r.version==`string`&&t[r.module_name]?.manifest&&r.version!==`stable`&&(n[r.module_name]=r.version);return n}var Qn=D((()=>{G(),In(),ze(),Kn(),Jn()}));Qn(),R(),Te();var $n=class{cwd;registry;constructor(e,t){this.cwd=e,this.registry=t}async detect(e){if(e!==`auto`)return e;let t=o.join(this.cwd,`package.json`);if(await I(t)){let e=(await Se(t)).packageManager?.split(`@`)[0];if(e===`npm`||e===`pnpm`||e===`yarn`||e===`bun`)return e}return await I(o.join(this.cwd,`pnpm-lock.yaml`))?`pnpm`:await I(o.join(this.cwd,`yarn.lock`))?`yarn`:await I(o.join(this.cwd,`bun.lock`))||await I(o.join(this.cwd,`bun.lockb`))?`bun`:`npm`}async install(e){let{command:t,args:n}=this.commandForPlatform(e,this.installArgs(e));return await new Promise((r,i)=>{let a;try{a=m(t,n,{cwd:this.cwd,stdio:`inherit`})}catch(t){i(new L(`PACKAGE_MANAGER_NOT_FOUND`,`${e} is not available.`,{details:{manager:e,cause:t instanceof Error?t.message:String(t)}}));return}a.on(`error`,t=>i(new L(`PACKAGE_MANAGER_NOT_FOUND`,`${e} is not available.`,{details:{manager:e,cause:t.message}}))),a.on(`exit`,t=>{t&&t!==0?i(new L(`PACKAGE_MANAGER_FAILED`,`${e} install failed.`,{details:{manager:e,registry:this.registry,exitCode:t}})):r(t??0)})})}commandForPlatform(e,t){return process.platform===`win32`?{command:process.env.ComSpec??`cmd.exe`,args:[`/d`,`/s`,`/c`,e,...t]}:{command:e,args:t}}installArgs(e){let t=[`install`];return this.registry&&(e===`npm`||e===`pnpm`||e===`bun`||e===`yarn`)&&t.push(`--registry`,this.registry),t}};R(),G();function er(e){if(e==null||e===``)return`hook ran`;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function tr(e,t){let n={dist:Yt(e,t)};if(t.packs.bp&&(n.bpRoot=Lt(e,t),n.bpManifest=qt(e,t),zt(t))){let r=Bt(e,t);r&&(n.srcEntry=r);let i=Ht(e,t);i&&(n.scriptOutFile=i);let a=Vt(e,t);a&&(n.scriptOutDir=a)}return t.packs.rp&&(n.rpRoot=Rt(e,t),n.rpManifest=Jt(e,t)),n}async function q(e,t,n,r,i,a){let o=r.hooks[e];if(o)try{let s=await o({command:t,cwd:n,...a===void 0?{}:{mode:a},target:r.target,config:r,paths:tr(n,r),logger:i});i.hook(String(e),er(s))}catch(t){throw new L(`HOOK_FAILED`,`${String(e)} hook failed: ${t instanceof Error?t.message:String(t)}`)}}async function nr(e){let t=new Oe({...e,silent:e.silent||e.json}),n={target:e.target};(e.registry||e.pm||e.saveTo||e.skipPm||e.skipManifest||e.skipPackageJson)&&(n.install={...e.registry?{registry:e.registry}:{},...e.pm?{packageManager:e.pm}:{},...e.saveTo?{saveTo:e.saveTo}:{},...e.skipPm?{runPackageManager:!1}:{},...e.skipManifest?{updateManifest:!1}:{},...e.skipPackageJson?{updatePackageJson:!1}:{}});let{cwd:r,config:i}=await Nn({cwd:e.cwd??process.cwd(),configPath:e.config,overrides:n});await q(`beforeInstall`,`install`,r,i,t);let a=await new Bn(i,t).resolveAll(),o=Object.fromEntries(Object.entries(a).filter(([,e])=>e.manifestVersion!==null).map(([e,t])=>[e,t.manifestVersion])),s={};i.install.updatePackageJson&&(s.packageJson=await Vn(r,i,a,e.dryRun)),i.install.updateManifest&&Object.assign(s,await Xn({cwd:r,config:i,dryRun:e.dryRun,logger:t,resolvedDeps:o}));let c=new $n(r,i.install.registry),l=await c.detect(i.install.packageManager),u={ran:!1,manager:l,exitCode:null};return!e.dryRun&&i.install.runPackageManager&&(t.progress(`Install`,`running ${l} install with registry ${i.install.registry}`),u={ran:!0,manager:l,exitCode:await c.install(l)}),await q(`afterInstall`,`install`,r,i,t),t.success(`Install`,`done`),{ok:!0,command:`install`,target:i.target,packageManager:l,resolved:a,files:s,packageInstall:u}}Qn();async function rr(e){let t=new Oe({...e,silent:e.silent||e.json}),{cwd:n,config:r}=await Nn({cwd:e.cwd??process.cwd(),configPath:e.config,overrides:{target:e.target}});await q(`beforeManifest`,`manifest`,n,r,t);let i=await Xn({cwd:n,config:r,dryRun:e.dryRun,logger:t});return await q(`afterManifest`,`manifest`,n,r,t),t.success(`Manifest`,e.dryRun?`dry-run complete`:`updated manifest.json`),{ok:!0,command:`manifest`,target:r.target,files:i}}R(),Te();function ir(e,t,n,r){let i=e?`npx tsc --noEmit`:`tsc --noEmit`;return i+=` --project "${t}"`,n&&r&&(i+=` --incremental --tsBuildInfoFile "${r}"`),i}async function ar(e,t={}){let n=t.tsconfigPath??`tsconfig.json`,r=o.resolve(e,n);if(!await I(r))throw new L(`TYPECHECK_FAILED`,`TypeScript config not found: ${n}. Create it or run build with --skip-typecheck.`,{details:{path:n}});t.incremental&&t.tsBuildInfoFile&&await g(o.dirname(t.tsBuildInfoFile),{recursive:!0});let i=ir(!!t.useNpx,r,!!t.incremental,t.tsBuildInfoFile);await new Promise((n,r)=>{let a=``,o=``,s;try{s=p(i,{cwd:e,windowsHide:!0,maxBuffer:10485760},e=>{if(!e){n();return}let s=[a.trim(),o.trim()].filter(Boolean).join(`
10
- `),c=s.includes(`not recognized`)||s.includes(`not found`)||s.includes(`ENOENT`)||s.includes(`不是内部或外部命令`),l=c?t.useNpx?[`Install npm/npx or set packs.bp.compile.entry to skip typecheck.`]:["Install TypeScript globally so `tsc` is available.",`Set packs.bp.compile.useNpx: true to use the project local TypeScript.`]:void 0;r(new L(`TYPECHECK_FAILED`,c?`Cannot find ${t.useNpx?`npx`:`tsc`}.`:`${i} failed.`,{details:{command:i,exitCode:typeof e.code==`number`?e.code:null,...s?{diagnostics:s}:{}},...l?{suggestions:l}:{}}))})}catch(e){r(new L(`TYPECHECK_FAILED`,`Cannot start ${i}.`,{details:{command:i,cause:e instanceof Error?e.message:String(e)},suggestions:t.useNpx?[`Install npm/npx or set build.useNpx to false.`]:["Install TypeScript globally so `tsc` is available.",`Set build.useNpx: true to use the project local TypeScript.`]}));return}s.on(`error`,e=>{r(new L(`TYPECHECK_FAILED`,`Cannot start ${i}.`,{details:{command:i,cause:e.message},suggestions:t.useNpx?[`Install npm/npx or set build.useNpx to false.`]:["Install TypeScript globally so `tsc` is available.",`Set build.useNpx: true to use the project local TypeScript.`]}))}),s.stdout?.on(`data`,e=>{a+=String(e),t.quiet||process.stdout.write(e)}),s.stderr?.on(`data`,e=>{o+=String(e),t.quiet||process.stderr.write(e)})})}R(),Te(),G(),In();const or=/* @__PURE__ */ new Set([`plugins`]),sr=/* @__PURE__ */ new Set([`external`]),cr=/* @__PURE__ */ new Set([`output`,`resolve`,`transform`,`experimental`,`checks`,`optimization`,`watch`,`moduleTypes`]),lr=[{key:`file`,suggestion:`The output file is derived from packs.bp.compile.entry and scriptOutputDir.`},{key:`dir`,suggestion:`The output directory is derived from packs.bp.compile.scriptOutputDir.`},{key:`format`,suggestion:`Minecraft Script API modules must be ESM, so BePack always writes format: "esm".`},{key:`preserveModules`,suggestion:`Use packs.bp.compile.preserveModules instead.`},{key:`preserveModulesRoot`,suggestion:`The modules root is always the entry file directory.`},{key:`entryFileNames`,suggestion:"Manifest script entries assume one `.js` file per source module."}];function J(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ur(e){return e==null||e===!1?[]:Array.isArray(e)?e:[e]}function dr(e,t){return process.platform===`win32`?e.toLowerCase()===t.toLowerCase():e===t}function fr(e,t,n){return typeof e!=`string`||typeof t!=`string`?!1:dr(o.resolve(n,e),o.resolve(n,t))}function pr(e){if(e instanceof Error){let t=e.cause;return t instanceof Error&&t.message?t.message:e.message}return String(e)}function mr(e,t){if(typeof e==`function`||typeof t==`function`)return t;let n=[],r=/* @__PURE__ */ new Set,i=/* @__PURE__ */ new Set;for(let a of[...ur(e),...ur(t)])if(typeof a==`string`){if(r.has(a))continue;r.add(a),n.push(a)}else if(a instanceof RegExp){let e=`${a.source}/${a.flags}`;if(i.has(e))continue;i.add(e),n.push(a)}return n}function hr(e,t){if(!J(t))return t;let n=J(e)?e:{},r={...n,...t},i=J(n.define)?n.define:{};return J(t.define)&&(r.define={...i,...t.define}),r}function gr(e,t){if(!t)return{...e};let n={...e};for(let[e,r]of Object.entries(t)){if(r===void 0)continue;let t=n[e];n[e]=or.has(e)?[...ur(t),...ur(r)]:sr.has(e)?mr(t,r):e===`transform`?hr(t,r):cr.has(e)&&J(t)&&J(r)?{...t,...r}:r}return n}function _r(e){if(!e.packs.bp?.compile)return[];let t=[...e.packs.bp.compile.external],n=new Set(t.filter(e=>typeof e==`string`));for(let[r,i]of Object.entries(Pn(e)))i.manifest&&!n.has(r)&&(t.push(r),n.add(r));return t}function vr(e){let t=e.packs.bp?.compile;if(!t)throw new L(`BUILD_FAILED`,`rolldown requires packs.bp.compile to be configured.`);return t}function yr(e,t){let n=vr(t),r=Bt(e,t);if(!r)throw new L(`BUILD_FAILED`,`packs.bp.compile.entry could not be resolved.`);return{input:r,external:_r(t),plugins:en(t),...rn(n.define)??{},onwarn(e,t){e.code!==`CIRCULAR_DEPENDENCY`&&t(e)},experimental:{attachDebugInfo:n.preserveModules?`none`:`simple`}}}function br(e,t){let n=vr(t),r=Bt(e,t),i=Vt(e,t),a=Ht(e,t);if(!r||!i||!a)throw new L(`BUILD_FAILED`,`rolldown requires a valid compile entry and output directory.`);return n.preserveModules?{dir:i,format:`esm`,preserveModules:!0,preserveModulesRoot:o.dirname(r),entryFileNames:`[name].js`,minify:n.minify}:{file:a,format:`esm`,minify:n.minify}}function xr(e,t){if(typeof e==`string`)return[o.resolve(t,e)];if(Array.isArray(e))return e.every(e=>typeof e==`string`)?e.map(e=>o.resolve(t,e)).sort():void 0;if(J(e)){let n=Object.values(e);return n.every(e=>typeof e==`string`)?n.map(e=>o.resolve(t,e)).sort():void 0}}function Sr(e,t,n){if(e.input===void 0)return;let r=xr(e.input,n),i=xr(t.input,n);if(!(r!==void 0&&i!==void 0&&r.length===i.length&&r.every((e,t)=>dr(e,i[t]))))throw new L(`CONFIG_INVALID`,`packs.bp.compile.rolldown cannot override "input" — the bundle entry is managed by BePack.`,{details:{input:e.input,expected:t.input},suggestions:[`Set the entry file via packs.bp.compile.entry instead.`]})}function Cr(e,t,n){for(let{key:r,suggestion:i}of lr){let a=e[r];if(a===void 0)continue;let o=t[r];if(!(r===`file`||r===`dir`||r===`preserveModulesRoot`?fr(a,o,n):Object.is(a,o)||r===`preserveModules`&&o===void 0&&a===!1))throw new L(`CONFIG_INVALID`,`packs.bp.compile.rolldown cannot override "output.${r}" — it is managed by BePack.`,{details:{key:r,value:a,expected:o},suggestions:[i]})}}function wr(e,t){if(J(e)&&e.__esModule===!0&&`default`in e)return wr(e.default,t);if(typeof e==`function`)return e;if(Array.isArray(e)){if(e.length===0)throw new L(`CONFIG_INVALID`,`rolldown config file exports an empty array: ${t}`,{details:{file:t},suggestions:[`Export a single rolldown options object.`]});if(e.length>1)throw new L(`CONFIG_INVALID`,`rolldown config file exports ${e.length} configs, but BePack builds a single behavior pack per run: ${t}`,{details:{file:t,count:e.length},suggestions:[`Export a single rolldown options object.`]});if(!J(e[0]))throw new L(`CONFIG_INVALID`,`rolldown config file must export an options object or function: ${t}`);return e[0]}if(J(e))return e;throw new L(`CONFIG_INVALID`,`rolldown config file must default-export a rolldown options object, a function, or a single-element array: ${t}`)}async function Tr(e){if(!await I(e))throw new L(`CONFIG_INVALID`,`rolldown config file not found: ${e}`,{details:{path:e},suggestions:[`Check the path in packs.bp.compile.rolldownConfig or --rolldown-config.`]});let t;try{t=await v(e)}catch(t){throw new L(`CONFIG_INVALID`,`Failed to load rolldown config file "${e}": ${pr(t)}`)}return wr(t,e)}async function Er(e,t,n){let r;try{r=await e(t,n)}catch(e){throw new L(`BUILD_FAILED`,`compile.rolldown customization function failed: ${pr(e)}`)}if(r==null)return t;if(!J(r))throw new L(`CONFIG_INVALID`,`compile.rolldown customization function must return a rolldown options object (or nothing).`);return gr(t,r)}async function Dr(e){let{cwd:t,config:n}=e,r=vr(n),i=U(t,n),a=Bt(t,n),s=Vt(t,n),c=Ht(t,n);if(!a||!s||!c)throw new L(`BUILD_FAILED`,`rolldown requires a valid compile entry and output directory.`);let l=yr(t,n),u=br(t,n),d={command:e.command??`build`,...e.mode===void 0?{}:{mode:e.mode},target:n.target,entry:a,outDir:s,outFile:c,preserveModules:r.preserveModules},f=r.rolldown,p=e.configPath??r.rolldownConfig,m=p?await Tr(o.resolve(i,p)):void 0,h=gr(l,typeof f==`function`?void 0:f);h=gr(h,typeof m==`function`?void 0:m),typeof f==`function`&&(h=await Er(f,h,d)),typeof m==`function`&&(h=await Er(m,h,d));let{output:g,input:_,...v}=h;if(Array.isArray(g))throw new L(`CONFIG_INVALID`,"packs.bp.compile.rolldown cannot declare multiple outputs (an `output` array) — BePack writes exactly one output.",{suggestions:["Declare a single `output` object."]});if(g!==void 0&&!J(g))throw new L(`CONFIG_INVALID`,"packs.bp.compile.rolldown `output` must be an object.",{details:{output:g}});Sr({input:_},l,i);let y=gr(u,g);return Cr(y,u,i),{inputOptions:{...v,input:l.input},outputOptions:y}}R(),Te(),G();function Or(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(2)} MB`}function kr(t,n){let r=o.resolve(t),i=o.resolve(n),a=o.relative(r,i);if(!a||a.startsWith(`..`)||o.isAbsolute(a))return;try{if(e(r).isSymbolicLink())throw new L(`BUILD_FAILED`,`Safety check failed: BP root is a symbolic link or junction: "${r}". Refusing to recursively delete through a symbolic link.`)}catch(e){if(e instanceof L)throw e;if(e?.code===`ENOENT`)return;throw e}let s=r;for(let t of a.split(o.sep)){s=o.join(s,t);try{if(e(s).isSymbolicLink())throw new L(`BUILD_FAILED`,`Safety check failed: script output path contains a symbolic link: "${s}". Refusing to recursively delete through a symbolic link.`)}catch(e){if(e.code===`ENOENT`)break;throw e}}}function Ar(e,t,n){let r=o.resolve(e),i=o.resolve(t);if(Ut(r,i)||Ut(i,r))throw new L(`BUILD_FAILED`,`Safety check failed: script output directory "${e}" overlaps ${n} "${t}". Refusing to empty this directory.`)}function jr(e,t,n,r){let i=U(e,t),a=Lt(e,t),s=o.join(a,`manifest.json`),c=[o.join(i,`.git`),o.join(a,`.git`)];for(let e of c)Ar(r,e,`.git metadata`);if(t.packs.rp){let e=W(i,t,`rp`);o.resolve(e)!==o.resolve(a)&&Ar(r,e,`RP root`)}Ar(r,s,`BP manifest`);let l=o.dirname(n),u=o.relative(a,l);Gt(r,a,`script output directory`,u&&!u.startsWith(`..`)&&!o.isAbsolute(u)?[l]:[]),kr(a,r)}async function Mr(e,t,n,r={}){if(!zt(t))throw new L(`BUILD_FAILED`,`rolldown requires packs.bp.compile to be configured.`);let i=Bt(e,t),a=Vt(e,t),o=Ht(e,t);if(!i||!a||!o)throw new L(`BUILD_FAILED`,`rolldown requires a valid compile entry and output directory.`);try{let{inputOptions:o,outputOptions:s}=await Dr({cwd:e,config:t,...r.command===void 0?{}:{command:r.command},...r.mode===void 0?{}:{mode:r.mode},...r.rolldownConfig===void 0?{}:{configPath:r.rolldownConfig}});jr(e,t,i,a),await xe(a);let c=await _(o);try{await c.write(s)}finally{await c.close()}await Nr(a,n)}catch(e){throw e instanceof L?e:new L(`BUILD_FAILED`,`rolldown failed: ${e instanceof Error?e.message:String(e)}`)}}async function Nr(e,t){let n=[];async function r(t){let i=await h.readdir(t,{withFileTypes:!0});for(let a of i){let i=o.join(t,a.name);if(a.isDirectory())await r(i);else if(a.isFile()&&a.name.endsWith(`.js`)){let t=await h.stat(i);n.push({path:o.relative(e,i),size:t.size})}}}if(await r(e),n.length===0)return;n.sort((e,t)=>t.size-e.size);let i=n.reduce((e,t)=>e+t.size,0);t?.rolldown(n.length===1?`${n[0].path} (${Or(n[0].size)})`:`${n.length} files, total ${Or(i)}`)}Qn(),G();async function Pr(e,t,n,r){let i=r?Date.now():0,a=await t();return r&&n.timing(e,Date.now()-i),a}async function Fr(e){let t=Date.now(),n=e.config.build.timing,r=U(e.cwd,e.config),i=zt(e.config);await Pr(`manifest`,()=>Xn({cwd:e.cwd,config:e.config,dryRun:!!e.dryRun,logger:e.logger,...e.resolvedDeps?{resolvedDeps:e.resolvedDeps}:{}}),e.logger,n);let a=[];e.config.packs.bp&&a.push(`bp`),e.config.packs.rp&&a.push(`rp`),e.logger.manifest(`manifest.json updated (${a.join(`, `)})`),await q(`beforeBuild`,`build`,e.cwd,e.config,e.logger,e.mode);let s=!1;if(i&&!e.dryRun&&e.typecheck!==!1){let t=e.config.packs.bp.compile,i=e.cache?o.resolve(r,t.cache.file):void 0;await Pr(`typecheck`,()=>ar(r,{quiet:!!e.quiet,useNpx:t.useNpx,tsconfigPath:t.tsconfig,incremental:!!e.cache,...i?{tsBuildInfoFile:i}:{}}),e.logger,n),s=!0,e.logger.typescript(`typecheck complete`)}i&&!e.dryRun&&(await Pr(`rolldown`,()=>Mr(e.cwd,e.config,e.logger,{...e.command===void 0?{}:{command:e.command},...e.mode===void 0?{}:{mode:e.mode},...e.rolldownConfig===void 0?{}:{rolldownConfig:e.rolldownConfig}}),e.logger,n),e.logger.rolldown(e.config.packs.bp.compile.preserveModules?`preserve modules build complete`:`bundle complete`)),await q(`afterBuild`,`build`,e.cwd,e.config,e.logger,e.mode);let c=Date.now()-t;return{script:i?H(Ht(e.cwd,e.config)):void 0,compiled:i,typecheck:s,durationMs:c}}async function Ir(e,n=``){let r={},i=await t.readdir(e,{withFileTypes:!0});for(let a of i){let i=o.join(e,a.name),s=n?`${n}/${a.name}`:a.name;a.isDirectory()?Object.assign(r,await Ir(i,s)):r[s]=new Uint8Array(await t.readFile(i))}return r}async function Lr(e,n){let r={};for(let i of n){let n=o.join(e,i);try{(await t.stat(n)).isDirectory()?Object.assign(r,await Ir(n,i)):r[i]=new Uint8Array(await t.readFile(n))}catch{}}return r}async function Rr(e,t){return t?await t(e):e}function zr(e,t){let n={};for(let[r,i]of Object.entries(e))n[`${t}/${r}`]=i;return n}function Br(e){let t={};for(let n of Object.keys(e).sort())t[n]=e[n];return t}async function Vr(e,n){await t.rm(e,{recursive:!0,force:!0}),await t.mkdir(e,{recursive:!0});for(let[r,i]of Object.entries(n)){let n=o.join(e,r);await t.mkdir(o.dirname(n),{recursive:!0}),await t.writeFile(n,i)}}var Hr=D((()=>{}));Hr(),R();const Ur=new TextEncoder;new TextDecoder;function Wr(e){let t=16+e.length*256,n=0,r=[];for(let t of e){let e=Ur.encode(t.name);if(e.length===0)throw new L(`PACK_FAILED`,`brarchive entry names must not be empty.`);if(e.length>247)throw new L(`PACK_FAILED`,`brarchive entry name is too long (max 247 bytes): ${t.name}`,{details:{name:t.name,bytes:e.length}});r.push(e),n+=t.data.length}let i=new Uint8Array(t+n),a=new DataView(i.buffer);a.setBigUint64(0,9018218223661903910n,!1),a.setUint32(8,e.length,!0),a.setUint32(12,1,!0);let o=0;return e.forEach((e,n)=>{let s=16+n*256,c=r[n];a.setUint8(s,c.length),i.set(c,s+1),a.setUint32(s+248,o,!0),a.setUint32(s+252,e.data.length,!0),i.set(e.data,t+o),o+=e.data.length}),i}R();const Gr=[`functions`,`loot_tables`,`structures`,`texts`],Kr=[`font`,`materials`,`sounds`,`texts`,`textures`],qr=[1,26,40],Jr=qr.join(`.`),Yr=new TextEncoder,Xr=new TextDecoder,Zr=new TextDecoder(`utf-16le`),Qr=new TextDecoder(`utf-16be`);function $r(e){if(e.length>=2){if(e[0]===255&&e[1]===254)return Zr.decode(e.subarray(2));if(e[0]===254&&e[1]===255)return Qr.decode(e.subarray(2))}return Xr.decode(e)}function ei(e){return e.length>=2&&(e[0]===255&&e[1]===254||e[0]===254&&e[1]===255)}function ti(e){return e.startsWith(``)?e.slice(1):e}function ni(e){if(e&&typeof e==`object`&&!Array.isArray(e))return e}function ri(e){if(typeof e==`string`){let t=e.split(`.`).map(e=>Number.parseInt(e,10));return t.length>=3&&t.slice(0,3).every(e=>Number.isInteger(e))?[t[0],t[1],t[2]]:void 0}if(Array.isArray(e)&&e.length>=3){let t=e.slice(0,3);if(t.every(e=>typeof e==`number`&&Number.isInteger(e)))return t}}function ii(e,t){for(let n=0;n<3;n++){let r=(e[n]??0)-(t[n]??0);if(r!==0)return r}return 0}function ai(e){if(e)try{return ni(JSON.parse(ti($r(e))))}catch{return}}function oi(e){return ri(ni(e?.header)?.min_engine_version)}function si(e){let t=e?.modules;return Array.isArray(t)?t.some(e=>ni(e)?.type===`resources`):!1}function ci(e,t,n){if(t.allowUnsupportedTarget)return;let r=oi(e);if(r&&ii(r,qr)>=0)return;let i=r?r.join(`.`):`(not declared)`;n?.warn(`pack optimization: header.min_engine_version is ${i}, below ${Jr}. The archives still load on 1.26.40+, but older clients cannot read __brarchive/ and will show missing content. Set allowUnsupportedTarget: true to silence this warning.`)}function li(e,t,n){if(!e.toLowerCase().endsWith(`.json`))return t;try{let e=JSON.parse(ti($r(t)));return Yr.encode(JSON.stringify(e))}catch(r){let i=r instanceof Error?r.message:String(r),a=ei(t)?` (UTF-16)`:``;return n?.warn(`pack optimization: could not minify ${e}${a}, storing it unchanged. ${i}. Fix the JSON to have it minified.`),t}}function ui(e,t){if(!e)throw new L(`PACK_FAILED`,`Pack optimization needs a manifest.json to write header.pack_optimization_version into.`);let n;try{let t=ni(JSON.parse(ti($r(e))));if(!t)throw Error(`manifest is not an object`);n=t}catch{throw new L(`PACK_FAILED`,`Cannot write header.pack_optimization_version: the pack's manifest.json is not valid JSON.`)}let r={...ni(n.header)??{}};return r.pack_optimization_version=t,n.header=r,Yr.encode(JSON.stringify(n))}function di(e,t,n,r){let i=e[`manifest.json`]??r,a=ai(i);ci(a,t,n);let o=new Set(t.exclude),s=t.keepLoose===!1?/* @__PURE__ */ new Set:/* @__PURE__ */ new Set([...si(a)?Kr:Gr,...t.keepLoose]),c=/* @__PURE__ */ new Map,l={},u={},d=0,f=0;for(let r of Object.keys(e).sort()){let i=e[r],a=r.split(`/`),p=a[0];if(a.length<2||p===`__brarchive`||o.has(p)){l[r]=i;continue}let m=a.slice(0,-1).join(`/`),h=a[a.length-1],g=c.get(m)??[],_=t.keepLooseFiles||s.has(p);s.has(p)&&!t.keepLooseFiles?(g.push({name:h,data:/* @__PURE__ */ new Uint8Array}),u[r]=i,f++):(g.push({name:h,data:t.minifyJson?li(h,i,n):i}),d++,_&&(u[r]=i)),c.set(m,g)}let p={...l,...u};for(let e of[...c.keys()].sort())p[`__brarchive/${e}.brarchive`]=Wr(c.get(e));p[`manifest.json`]=ui(i,t.packOptimizationVersion);let m=Object.keys(u).length,h=f>0?`, ${f} name-stub${f===1?``:`s`}`:``;return n?.pack(`optimized into ${c.size} archive${c.size===1?``:`s`} (${d} file${d===1?``:`s`} archived${h}, ${m} kept loose)`),Br(p)}function fi(e,t,n){return r=>di(r,e,t,n)}R();const pi={win:()=>({type:`gameRoot`,path:o.join(`C:/Users`,u.userInfo().username,`AppData/Roaming/Minecraft Bedrock/Users/Shared/games/com.mojang`)}),winold:()=>{let e=process.env.LOCALAPPDATA;if(!e)throw new L(`COPY_TARGET_NOT_FOUND`,`%LOCALAPPDATA% is required for winold copy target.`);return{type:`gameRoot`,path:o.join(e,`Packages`,`Microsoft.MinecraftUWP_8wekyb3d8bbwe`,`LocalState`,`games`,`com.mojang`)}}};function mi(e,t){return{type:`custom`,bp:o.join(t.path,`development_behavior_packs`),...e.packs.rp?{rp:o.join(t.path,`development_resource_packs`)}:{}}}function hi(e,t){let n=t??e.copy.defaultTarget;if(!n)throw new L(`COPY_TARGET_NOT_FOUND`,`No copy target configured. Set copy.defaultTarget or copy.targets in bepack.config.ts, or pass --target.`,{suggestions:[`Add copy.defaultTarget to your config file.`,`Or set build.copy / dev.copy to a target name instead of true.`,`Built-in targets: win, winold.`]});let r=e.copy.targets[n]??pi[n]?.();if(!r)throw new L(`COPY_TARGET_NOT_FOUND`,`Copy target not found: ${n}`,{details:{target:n}});let i=e.copy.targets[n]?.name,a=e.copy.name,o=e=>typeof e==`string`?{bp:e,rp:e}:e??{},s=o(i),c=o(a),l={},u=s.bp??c.bp,d=s.rp??c.rp;return u&&(l.bp=u),d&&(l.rp=d),r.type===`gameRoot`?{name:n,target:mi(e,r),names:l}:{name:n,target:r,names:l}}R(),Te(),G(),Ft(),Hr();const gi=De.default.createColors(process.env.NO_COLOR===void 0&&process.env.FORCE_COLOR!==`0`);async function _i(e,n,r){await t.rm(n,{recursive:!0,force:!0}),await t.mkdir(n,{recursive:!0});for(let i of r){let r=o.join(e,i),a=o.join(n,i);try{await t.cp(r,a,{recursive:!0})}catch(e){if(e.code!==`ENOENT`)throw e}}}function vi(e,t){let n=o.resolve(e),r=o.resolve(t);if(Ut(n,r)||Ut(r,n))throw new L(`COPY_FAILED`,`Copy target "${t}" overlaps source pack "${e}". Refusing to copy.`,{details:{source:n,target:r}})}function yi(e,t){let n=o.resolve(e),r=o.resolve(n,t);if(r===n||!Ut(n,r))throw new L(`COPY_FAILED`,`Copy folder name "${t}" must resolve to a directory inside "${e}".`,{details:{targetDir:n,folderName:t,destination:r}});return r}async function bi(e,t){if(!await I(e))throw new L(`COPY_FAILED`,`Copy target directory does not exist: ${e}`,{details:{dir:e,label:t},suggestions:[`Create the target directory: mkdir -p "${e}"`,`Or check the copy target path in bepack.config.ts.`]})}function xi(e,t){if(t===`bp`)return Kt(e);let n=e.packs.rp?.include??[],r=e.copy.include?.rp??[],i=n.length>0?n:r;return i.length>0?[...Pt,...i]:[]}async function Si(e){try{return new Uint8Array(await t.readFile(o.join(e,`manifest.json`)))}catch{return}}async function Ci(e,t,n,r,i,a,o,s){let c=xi(i,e),l=yi(n,r);vi(t,l);let u=s===void 0?i.copy.optimize:s?i.copy.optimize??kt:void 0;if(!a){if(u){let n=e===`bp`||c.length>0?await Lr(t,c):await Ir(t),r=fi(u,o,await Si(t));try{await Vr(l,await Rr(n,r))}catch(e){throw e instanceof L?new L(e.code===`PACK_FAILED`?`COPY_FAILED`:e.code,e.message,{...e.details===void 0?{}:{details:e.details},...e.suggestions===void 0?{}:{suggestions:e.suggestions}}):e}}else e===`bp`||c.length>0?await _i(t,l,c):await we(t,l)}let d=c.length>0?c.length:void 0;return o?.copy(`${a?`would copy`:`copied`} ${e}${d?` (${d} items)`:``} -> ${gi.gray(l)}`),l}async function wi(e,t,n,r=!1,i,a={}){let{name:o,target:s,names:c}=hi(t,n),l=[],u=U(e,t),d=Mt(t);for(let e of d){let n;if(n=e.type===`bp`?s.bp:s.rp,!n)continue;await bi(n,e.type);let o=c[e.type]??e.name,d=W(u,t,e.type),f=await Ci(e.type,d,n,o,t,r,i,a.optimize);l.push(f)}return{target:o,copied:l}}function Ti(e,t){return la(e,t||{},0,0)}function Ei(e,t){if(t){for(var n=new Y(e.length),r=0;r<e.length;++r)n[r]=e.charCodeAt(r);return n}if(fa)return fa.encode(e);for(var i=e.length,a=new Y(e.length+(e.length>>1)),o=0,s=function(e){a[o++]=e},r=0;r<i;++r){if(o+5>a.length){var c=new Y(o+8+(i-r<<1));c.set(a),a=c}var l=e.charCodeAt(r);l<128||t?s(l):l<2048?(s(192|l>>6),s(128|l&63)):l>55295&&l<57344?(l=65536+(l&1047552)|e.charCodeAt(++r)&1023,s(240|l>>18),s(128|l>>12&63),s(128|l>>6&63),s(128|l&63)):(s(224|l>>12),s(128|l>>6&63),s(128|l&63))}return qi(a,0,o)}function Di(e,t){t||={};var n={},r=[];da(e,``,n,t);var i=0,a=0;for(var o in n){var s=n[o],c=s[0],l=s[1],u=l.level==0?0:8,d=Ei(o),f=d.length,p=l.comment,m=p&&Ei(p),h=m&&m.length,g=ma(l.extra);f>65535&&Yi(11);var _=u?Ti(c,l):c,v=_.length,y=ca();y.p(c),r.push(ua(l,{size:c.length,crc:y.d(),c:_,f:d,m,u:f!=o.length||m&&p.length!=h,o:i,compression:u})),i+=30+f+g+v,a+=76+2*(f+g)+(h||0)+v}for(var b=new Y(a+22),x=i,S=a-i,C=0;C<r.length;++C){var d=r[C];ha(b,d.o,d,d.f,d.u,d.c.length);var w=30+d.f.length+ma(d.extra);b.set(d.c,d.o+w),ha(b,i,d,d.f,d.u,d.c.length,d.o,d.m),i+=16+w+(d.m?d.m.length:0)}return ga(b,i,r.length,S,x),b}var Oi,ki,Y,X,Ai,ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,zi,Z,Bi,Vi,Hi,Ui,Wi,Gi,Ki,qi,Ji,Yi,Xi,Zi,Qi,$i,ea,ta,na,ra,ia,aa,oa,sa,ca,la,ua,Q,da,fa,pa,ma,ha,ga,_a=D((()=>{Oi=y(`/`);try{ki=Oi("worker_threads"),ki.Worker,ki.isMarkedAsUntransferable}catch{}for(Y=Uint8Array,X=Uint16Array,Ai=Int32Array,ji=new Y([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Mi=new Y([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Ni=new Y([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Pi=function(e,t){for(var n=new X(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];for(var i=new Ai(n[30]),r=1;r<30;++r)for(var a=n[r];a<n[r+1];++a)i[a]=a-n[r]<<5|r;return{b:n,r:i}},ki=Pi(ji,2),Fi=ki.b,Ii=ki.r,Fi[28]=258,Ii[258]=28,Li=Pi(Mi,0),Li.b,Ri=Li.r,zi=new X(32768),Z=0;Z<32768;++Z)Bi=(Z&43690)>>1|(Z&21845)<<1,Bi=(Bi&52428)>>2|(Bi&13107)<<2,Bi=(Bi&61680)>>4|(Bi&3855)<<4,zi[Z]=((Bi&65280)>>8|(Bi&255)<<8)>>1;for(Vi=(function(e,t,n){for(var r=e.length,i=0,a=new X(t);i<r;++i)e[i]&&++a[e[i]-1];var o=new X(t);for(i=1;i<t;++i)o[i]=o[i-1]+a[i-1]<<1;var s;if(n){s=new X(1<<t);var c=15-t;for(i=0;i<r;++i)if(e[i])for(var l=i<<4|e[i],u=t-e[i],d=o[e[i]-1]++<<u,f=d|(1<<u)-1;d<=f;++d)s[zi[d]>>c]=l}else for(s=new X(r),i=0;i<r;++i)e[i]&&(s[i]=zi[o[e[i]-1]++]>>15-e[i]);return s}),Hi=new Y(288),Z=0;Z<144;++Z)Hi[Z]=8;for(Z=144;Z<256;++Z)Hi[Z]=9;for(Z=256;Z<280;++Z)Hi[Z]=7;for(Z=280;Z<288;++Z)Hi[Z]=8;for(Ui=new Y(32),Z=0;Z<32;++Z)Ui[Z]=5;Wi=/*#__PURE__*/ Vi(Hi,9,0),Gi=/*#__PURE__*/ Vi(Ui,5,0),Ki=function(e){return(e+7)/8|0},qi=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new Y(e.subarray(t,n))},Ji=[`unexpected EOF`,`invalid block type`,`invalid length/literal`,`invalid distance`,`stream finished`,`no stream handler`,,`no callback`,`invalid UTF-8 data`,`extra field too long`,`date not in range 1980-2099`,`filename too long`,`stream finishing`,`invalid zip data`],Yi=function(e,t,n){var r=Error(t||Ji[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,Yi),!n)throw r;return r},Xi=function(e,t,n){n<<=t&7;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8},Zi=function(e,t,n){n<<=t&7;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8,e[r+2]|=n>>16},Qi=function(e,t){for(var n=[],r=0;r<e.length;++r)e[r]&&n.push({s:r,f:e[r]});var i=n.length,a=n.slice();if(!i)return{t:aa,l:0};if(i==1){var o=new Y(n[0].s+1);return o[n[0].s]=1,{t:o,l:1}}n.sort(function(e,t){return e.f-t.f}),n.push({s:-1,f:25001});var s=n[0],c=n[1],l=0,u=1,d=2;for(n[0]={s:-1,f:s.f+c.f,l:s,r:c};u!=i-1;)s=n[n[l].f<n[d].f?l++:d++],c=n[l!=u&&n[l].f<n[d].f?l++:d++],n[u++]={s:-1,f:s.f+c.f,l:s,r:c};for(var f=a[0].s,r=1;r<i;++r)a[r].s>f&&(f=a[r].s);var p=new X(f+1),m=$i(n[u-1],p,0);if(m>t){var r=0,h=0,g=m-t,_=1<<g;for(a.sort(function(e,t){return p[t.s]-p[e.s]||e.f-t.f});r<i;++r){var v=a[r].s;if(p[v]>t)h+=_-(1<<m-p[v]),p[v]=t;else break}for(h>>=g;h>0;){var y=a[r].s;p[y]<t?h-=1<<t-p[y]++-1:++r}for(;r>=0&&h;--r){var b=a[r].s;p[b]==t&&(--p[b],++h)}m=t}return{t:new Y(p),l:m}},$i=function(e,t,n){return e.s==-1?Math.max($i(e.l,t,n+1),$i(e.r,t,n+1)):t[e.s]=n},ea=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new X(++t),r=0,i=e[0],a=1,o=function(e){n[r++]=e},s=1;s<=t;++s)if(e[s]==i&&s!=t)++a;else{if(!i&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(i),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(i);a=1,i=e[s]}return{c:n.subarray(0,r),n:t}},ta=function(e,t){for(var n=0,r=0;r<t.length;++r)n+=e[r]*t[r];return n},na=function(e,t,n){var r=n.length,i=Ki(t+2);e[i]=r&255,e[i+1]=r>>8,e[i+2]=e[i]^255,e[i+3]=e[i+1]^255;for(var a=0;a<r;++a)e[i+a+4]=n[a];return(i+4+r)*8},ra=function(e,t,n,r,i,a,o,s,c,l,u){Xi(t,u++,n),++i[256];for(var d=Qi(i,15),f=d.t,p=d.l,m=Qi(a,15),h=m.t,g=m.l,_=ea(f),v=_.c,y=_.n,b=ea(h),x=b.c,S=b.n,C=new X(19),w=0;w<v.length;++w)++C[v[w]&31];for(var w=0;w<x.length;++w)++C[x[w]&31];for(var T=Qi(C,7),E=T.t,D=T.l,O=19;O>4&&!E[Ni[O-1]];--O);var ee=l+5<<3,k=ta(i,Hi)+ta(a,Ui)+o,A=ta(i,f)+ta(a,h)+o+14+3*O+ta(C,E)+2*C[16]+3*C[17]+7*C[18];if(c>=0&&ee<=k&&ee<=A)return na(t,u,e.subarray(c,c+l));var j,M,N,te;if(Xi(t,u,1+(A<k)),u+=2,A<k){j=Vi(f,p,0),M=f,N=Vi(h,g,0),te=h;var ne=Vi(E,D,0);Xi(t,u,y-257),Xi(t,u+5,S-1),Xi(t,u+10,O-4),u+=14;for(var w=0;w<O;++w)Xi(t,u+3*w,E[Ni[w]]);u+=3*O;for(var P=[v,x],re=0;re<2;++re)for(var ie=P[re],w=0;w<ie.length;++w){var ae=ie[w]&31;Xi(t,u,ne[ae]),u+=E[ae],ae>15&&(Xi(t,u,ie[w]>>5&127),u+=ie[w]>>12)}}else j=Wi,M=Hi,N=Gi,te=Ui;for(var w=0;w<s;++w){var F=r[w];if(F>255){var ae=F>>18&31;Zi(t,u,j[ae+257]),u+=M[ae+257],ae>7&&(Xi(t,u,F>>23&31),u+=ji[ae]);var oe=F&31;Zi(t,u,N[oe]),u+=te[oe],oe>3&&(Zi(t,u,F>>5&8191),u+=Mi[oe])}else Zi(t,u,j[F]),u+=M[F]}return Zi(t,u,j[256]),u+M[256]},ia=/*#__PURE__*/ new Ai([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),aa=/*#__PURE__*/ new Y(0),oa=function(e,t,n,r,i,a){var o=a.z||e.length,s=new Y(r+o+5*(1+Math.ceil(o/7e3))+i),c=s.subarray(r,s.length-i),l=a.l,u=(a.r||0)&7;if(t){u&&(c[0]=a.r>>3);for(var d=ia[t-1],f=d>>13,p=d&8191,m=(1<<n)-1,h=a.p||new X(32768),g=a.h||new X(m+1),_=Math.ceil(n/3),v=2*_,y=function(t){return(e[t]^e[t+1]<<_^e[t+2]<<v)&m},b=new Ai(25e3),x=new X(288),S=new X(32),C=0,w=0,T=a.i||0,E=0,D=a.w||0,O=0;T+2<o;++T){var ee=y(T),k=T&32767,A=g[ee];if(h[k]=A,g[ee]=k,D<=T){var j=o-T;if((C>7e3||E>24576)&&(j>423||!l)){u=ra(e,c,0,b,x,S,w,E,O,T-O,u),E=C=w=0,O=T;for(var M=0;M<286;++M)x[M]=0;for(var M=0;M<30;++M)S[M]=0}var N=2,te=0,ne=p,P=k-A&32767;if(j>2&&ee==y(T-P))for(var re=Math.min(f,j)-1,ie=Math.min(32767,T),ae=Math.min(258,j);P<=ie&&--ne&&k!=A;){if(e[T+N]==e[T+N-P]){for(var F=0;F<ae&&e[T+F]==e[T+F-P];++F);if(F>N){if(N=F,te=P,F>re)break;for(var oe=Math.min(P,F-2),se=0,M=0;M<oe;++M){var ce=T-P+M&32767,le=ce-h[ce]&32767;le>se&&(se=le,A=ce)}}}k=A,A=h[k],P+=k-A&32767}if(te){b[E++]=268435456|Ii[N]<<18|Ri[te];var ue=Ii[N]&31,de=Ri[te]&31;w+=ji[ue]+Mi[de],++x[257+ue],++S[de],D=T+N,++C}else b[E++]=e[T],++x[e[T]]}}for(T=Math.max(T,D);T<o;++T)b[E++]=e[T],++x[e[T]];u=ra(e,c,l,b,x,S,w,E,O,T-O,u),l||(a.r=u&7|c[u/8|0]<<3,u-=7,a.h=g,a.p=h,a.i=T,a.w=D)}else{for(var T=a.w||0;T<o+l;T+=65535){var fe=T+65535;fe>=o&&(c[u/8|0]=l,fe=o),u=na(c,u+1,e.subarray(T,fe))}a.i=o}return qi(s,0,r+Ki(u)+i)},sa=/*#__PURE__*/ (function(){for(var e=/* @__PURE__ */ new Int32Array(256),t=0;t<256;++t){for(var n=t,r=9;--r;)n=(n&1&&-306674912)^n>>>1;e[t]=n}return e})(),ca=function(){var e=-1;return{p:function(t){for(var n=e,r=0;r<t.length;++r)n=sa[n&255^t[r]]^n>>>8;e=n},d:function(){return~e}}},la=function(e,t,n,r,i){if(!i&&(i={l:1},t.dictionary)){var a=t.dictionary.subarray(-32768),o=new Y(a.length+e.length);o.set(a),o.set(e,a.length),e=o,i.w=a.length}return oa(e,t.level==null?6:t.level,t.mem==null?i.l?Math.ceil(Math.max(8,Math.min(13,Math.log(e.length)))*1.5):20:12+t.mem,n,r,i)},ua=function(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n},Q=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8},da=function(e,t,n,r){for(var i in e){var a=e[i],o=t+i,s=r;Array.isArray(a)&&(s=ua(r,a[1]),a=a[0]),ArrayBuffer.isView(a)?n[o]=[a,s]:(n[o+=`/`]=[new Y(0),s],da(a,o,n,r))}},fa=typeof TextEncoder<`u`&&/*#__PURE__*/ new TextEncoder,pa=typeof TextDecoder<`u`&&/*#__PURE__*/ new TextDecoder;try{pa.decode(aa,{stream:!0})}catch{}ma=function(e){var t=0;if(e)for(var n in e){var r=e[n].length;r>65535&&Yi(9),t+=r+4}return t},ha=function(e,t,n,r,i,a,o,s){var c=r.length,l=n.extra,u=s&&s.length,d=ma(l);Q(e,t,o==null?67324752:33639248),t+=4,o!=null&&(e[t++]=20,e[t++]=n.os),e[t]=20,t+=2,e[t++]=n.flag<<1|(a<0&&8),e[t++]=i&&8,e[t++]=n.compression&255,e[t++]=n.compression>>8;var f=new Date(n.mtime==null?Date.now():n.mtime),p=f.getFullYear()-1980;if((p<0||p>119)&&Yi(10),Q(e,t,p<<25|f.getMonth()+1<<21|f.getDate()<<16|f.getHours()<<11|f.getMinutes()<<5|f.getSeconds()>>1),t+=4,a!=-1&&(Q(e,t,n.crc),Q(e,t+4,a<0?-a-2:a),Q(e,t+8,n.size)),Q(e,t+12,c),Q(e,t+14,d),t+=16,o!=null&&(Q(e,t,u),Q(e,t+6,n.attrs),Q(e,t+10,o),t+=14),e.set(r,t),t+=c,d)for(var m in l){var h=l[m],g=h.length;Q(e,t,+m),Q(e,t+2,g),e.set(h,t+4),t+=4+g}return u&&(e.set(s,t),t+=u),t},ga=function(e,t,n,r,i){Q(e,t,101010256),Q(e,t+8,n),Q(e,t+10,n),Q(e,t+12,r),Q(e,t+16,i)}}));async function va(e,n){await t.mkdir(o.dirname(n),{recursive:!0}),await t.writeFile(n,Di(Br(e)))}async function ya(e,t,n){await va(await Rr(await Ir(e),n),t)}async function ba(e,t,n,r){await va(await Rr(await Lr(e,t),r),n)}async function xa(e,t){let n={};for(let t of e){let e=await Rr(await Lr(t.source,t.items),t.transform);Object.assign(n,zr(e,o.basename(o.resolve(t.source))))}await va(n,t)}async function Sa(e,t,n){let r={};for(let t of e){let e=await Rr(await Lr(t.source,t.items),t.transform);Object.assign(r,zr(e,o.basename(o.resolve(t.source))))}for(let e of t){let t=await Rr(await Ir(e.dir),e.transform);Object.assign(r,zr(t,o.basename(o.resolve(e.dir))))}await va(r,n)}var Ca=D((()=>{_a(),Hr()})),wa=/* @__PURE__ */ ee({packMcpack:()=>Ta});async function Ta(e,t,n,r=!1,i){let a=o.join(t,`${n}.mcpack`);return r||await ya(e,a,i),a}var Ea=D((()=>{Ca()}));Ca(),G(),Ft(),R();function Da(e,t,n){let r=o.resolve(e),i=o.resolve(t),a=o.relative(i,r);if(a&&!a.startsWith(`..`)&&!o.isAbsolute(a))throw new L(`PACK_FAILED`,`pack output must not be inside ${n} directory.`,{details:{output:r,dir:i},suggestions:[`Set pack.outDir to a path outside ${n}: ${i}`]})}function Oa(e,t,n){let r=o.resolve(e),i=o.resolve(t);for(let e of n){let t=o.resolve(i,e),n=o.relative(t,r);if(n===``||!n.startsWith(`..${o.sep}`)&&n!==`..`&&!o.isAbsolute(n))throw new L(`PACK_FAILED`,`pack output must not be included in the BP archive.`,{details:{output:r,includedPath:t},suggestions:[`Set pack.outDir outside the selected BP include path: ${t}`]})}}function ka(e,t){let n=o.relative(o.resolve(t),o.resolve(e));if(n.startsWith(`..`)||o.isAbsolute(n))throw new L(`PACK_FAILED`,`pack output name must stay inside pack.outDir.`,{details:{output:o.resolve(e),dist:o.resolve(t)}})}function Aa(e,t){if(t===`bp`)return{items:Kt(e),selective:!0};let n=e.packs.rp?.include??[],r=e.copy.include?.rp??[],i=n.length>0?n:r;return i.length>0?{items:[...Pt,...i],selective:!0}:{items:[],selective:!1}}async function ja(e,t,n={}){let r=U(e,t),i=(n.name??t.pack.name).replaceAll(`{name}`,t.name).replaceAll(`{version}`,t.version),a=Yt(e,t);if(Mt(t).length===0)throw new L(`PACK_FAILED`,`No packs configured. At least one pack is required.`);let s=n.optimize===void 0?t.pack.optimize:n.optimize?t.pack.optimize??kt:void 0,c=s?fi(s,n.logger):void 0,l=t.packs.bp?{root:W(r,t,`bp`),config:t}:void 0,u=t.packs.rp?{root:W(r,t,`rp`),config:t}:void 0,d=l?Aa(t,`bp`):void 0;if(l&&u){if(!d)throw new L(`PACK_FAILED`,`BP pack configuration is missing.`);let e=o.join(a,`${i}.mcaddon`);if(ka(e,a),d?.selective&&Oa(e,l.root,d.items),Da(e,u.root,`RP`),!n.dryRun){let n=Aa(t,`rp`);n.selective?await xa([{source:l.root,items:d.items,...c?{transform:c}:{}},{source:u.root,items:n.items,...c?{transform:c}:{}}],e):await Sa([{source:l.root,items:d.items,...c?{transform:c}:{}}],[{dir:u.root,...c?{transform:c}:{}}],e)}return e}if(l){if(!d)throw new L(`PACK_FAILED`,`BP pack configuration is missing.`);let e=o.join(a,`${i}.mcpack`);return ka(e,a),d?.selective&&Oa(e,l.root,d.items),n.dryRun||await ba(l.root,d.items,e,c),e}if(u){let e=o.join(a,`${i}.mcpack`);if(ka(e,a),Da(e,u.root,`RP`),!n.dryRun){let r=Aa(t,`rp`);if(r.selective)await ba(u.root,r.items,e,c);else{let{packMcpack:e}=await Promise.resolve().then(()=>(Ea(),wa));return await e(u.root,a,i,n.dryRun,c)}}return e}throw new L(`PACK_FAILED`,`No packs configured.`)}async function Ma(e,t,n,r={}){let i=Date.now();await q(`beforePack`,`pack`,e,t,n);let a=await ja(e,t,{...r,logger:n});await q(`afterPack`,`pack`,e,t,n);let o=Date.now()-i;return n.done(`pack`,`packed ${a} in ${n.formatDuration(o)}`),{output:a,durationMs:o}}async function Na(e){let t=new Oe({...e,silent:e.silent||e.json}),{cwd:n,config:r}=await Nn({cwd:e.cwd??process.cwd(),configPath:e.config}),{output:i,durationMs:a}=await Ma(n,r,t,{name:e.name,dryRun:e.dryRun,...e.optimize===void 0?{}:{optimize:!!e.optimize}});return{ok:!0,command:`pack`,durationMs:a,output:i}}R();function Pa(e){for(let t of[[`copy`,`skipCopy`],[`pack`,`skipPack`],[`typecheck`,`skipTypecheck`],[`install`,`skipInstall`]]){let[n,r]=t;if(e[n]&&e[r])throw new L(`CLI_ARGUMENT_CONFLICT`,`--${n} and --${r} cannot be used together.`)}}async function Fa(e){Pa(e);let t=new Oe({...e,silent:e.silent||e.json}),{cwd:n,config:r}=await Nn({cwd:e.cwd??process.cwd(),configPath:e.config,overrides:{target:e.target,...e.timing===void 0?{}:{build:{timing:e.timing}}}});t.bepack(`build`,`target ${r.target}`);let i;if(e.install){let t=await nr({...e,cwd:n,config:void 0,silent:e.silent||e.json});i=Object.fromEntries(Object.entries(t.resolved).filter(([,e])=>e.manifestVersion!==null).map(([e,t])=>[e,t.manifestVersion]))}let a=r.packs.bp?.compile,o=e.skipTypecheck?!1:e.typecheck?!0:a?.typecheck??!1,s=e.cache===void 0?a?.cache.build??!1:e.cache,c=await Fr({cwd:n,config:r,logger:t,mode:e.mode,command:`build`,...e.rolldownConfig?{rolldownConfig:e.rolldownConfig}:{},typecheck:!!o,cache:!!s,dryRun:!!e.dryRun,quiet:!!(e.json||e.silent),...i?{resolvedDeps:i}:{}}),l=null,u=e.skipCopy?!1:e.copy||e.copyTarget?!0:r.build.copy;u&&(l=await wi(n,r,e.copyTarget??(typeof u==`string`?u:void 0),e.dryRun,t,e.optimize===void 0?{}:{optimize:!!e.optimize}));let d=null;return!e.skipPack&&e.pack&&(d=await Ma(n,r,t,{name:e.name,dryRun:e.dryRun,...e.optimize===void 0?{}:{optimize:!!e.optimize}})),t.done(`build`,`complete in ${t.formatDuration(c.durationMs)}`),{ok:!0,command:`build`,durationMs:c.durationMs,build:c,copy:l,pack:d}}async function Ia(e){let t=Date.now(),n=new Oe({...e,silent:e.silent||e.json}),{cwd:r,config:i}=await Nn({cwd:e.cwd??process.cwd(),configPath:e.config});await q(`beforeCopy`,`copy`,r,i,n);let a=e.all?[`win`,`winold`,...Object.keys(i.copy.targets)]:[e.target??i.copy.defaultTarget],o={...e.optimize===void 0?{}:{optimize:!!e.optimize}},s=[];for(let t of a)s.push(await wi(r,i,t,e.dryRun,n,o));await q(`afterCopy`,`copy`,r,i,n);let c=Date.now()-t;return n.done(`copy`,`${e.dryRun?`dry-run complete`:`complete`} in ${n.formatDuration(c)}`),{ok:!0,command:`copy`,durationMs:c,results:s}}G();const La=/[/\\]rolldown\.config\.[A-Za-z0-9_-]+\.js$/;function Ra(e,t){return H(o.relative(e,t))}function za(e,t,n,r){let i=U(e,t),a=zt(t),s=[];if(a){let n=Bt(e,t);n&&s.push(Ra(e,o.dirname(n)))}if(r.copy){for(let n of Mt(t))if(W(i,t,n.type)){let r=Ba(e,t,n.type,i);s.push(...r)}}let c=t.dev.watch?.include??[];s.push(...c);let l=Xt(s.map(t=>o.resolve(e,t))).map(t=>Ra(e,t)),u=[`node_modules`,`.git`,Ra(e,Yt(e,t))];for(let n of Mt(t)){let r=W(i,t,n.type);if(r&&(u.push(Ra(e,o.join(r,`manifest.json`))),n.type===`bp`&&a)){let n=W(i,t,`bp`),r=t.packs.bp.compile.scriptOutputDir;u.push(Ra(e,o.join(n,r)))}}let d=b.watch(l,{cwd:e,ignored:[...u,La],ignoreInitial:!0}),f=!1,p=!1,m=!1,h=async()=>{r.copy&&await wi(e,t,r.copyTarget,r.dryRun,n,{...r.optimize===void 0?{}:{optimize:r.optimize}})},g=async()=>{let{patchManifest:i}=await Promise.resolve().then(()=>(Qn(),Yn));await i({cwd:e,config:t,dryRun:r.dryRun,logger:n}),await h()},_=async()=>{if(a)await Fr({cwd:e,config:t,logger:n,command:`dev`,typecheck:r.typecheck,cache:r.cache,dryRun:r.dryRun,quiet:!!r.quiet,...r.mode===void 0?{}:{mode:r.mode},...r.rolldownConfig===void 0?{}:{rolldownConfig:r.rolldownConfig}});else{let{patchManifest:i}=await Promise.resolve().then(()=>(Qn(),Yn));await i({cwd:e,config:t,dryRun:r.dryRun,logger:n})}await h()},v=async()=>{for(;p||m;){let e=p;p=!1,m=!1;let t=Date.now();try{n.clear(),e?(n.bepack(`dev`,`rebuilding (pending changes)`),await _(),n.done(`dev`,`rebuild done in ${n.formatDuration(Date.now()-t)}`)):await g()}catch(e){n.error(e instanceof Error?e.message:String(e))}}};d.on(`all`,async(r,i)=>{let s=H(i),c=a?Bt(e,t):void 0,l=c?o.dirname(c):void 0,u=o.resolve(e,s),d=l?u===l||u.startsWith(l+o.sep):!1;if(f){d?p=!0:m=!0;return}f=!0;let h=Date.now();try{n.clear(),n.bepack(`dev`,`changed ${o.normalize(i)}`),d&&a?await _():await g(),n.done(`dev`,`updated after ${o.normalize(i)} in ${n.formatDuration(Date.now()-h)}`)}catch(e){n.error(e instanceof Error?e.message:String(e))}finally{try{await v()}finally{f=!1}}});let y=t.packs.bp?H(o.relative(e,W(i,t,`bp`))):null,x=t.packs.rp?H(o.relative(e,W(i,t,`rp`))):null,S=a&&Bt(e,t)?Ra(e,o.dirname(Bt(e,t))):null,C=!1,w=[],T=0,E=0;for(let e of l)y&&(e===y||e.startsWith(y+`/`))?(T++,S&&(e===S||e.startsWith(S+`/`))&&(C=!0)):x&&(e===x||e.startsWith(x+`/`))?(E++,S&&(e===S||e.startsWith(S+`/`))&&(C=!0)):S&&(e===S||e.startsWith(S+`/`))||w.push(e);return S&&!C&&w.unshift(S),T>0&&w.push(`bp(${T})`),E>0&&w.push(`rp(${E})`),n.progress(`dev`,`watching ${w.join(`, `)}`),d}function Ba(e,t,n,r){let i=W(r,t,n);if(!i)return[];if(n===`bp`)return Kt(t).filter(e=>e!==`manifest.json`).map(t=>H(o.relative(e,o.join(i,t))));let a=t.packs.rp;return a?a.include&&a.include.length>0?a.include.filter(e=>e!==`manifest.json`).map(t=>H(o.relative(e,o.join(i,t)))):[H(o.relative(e,i))]:[]}async function Va(e){let t=Date.now(),n=new Oe({...e,silent:e.silent||e.json}),{cwd:r,config:i}=await Nn({cwd:e.cwd??process.cwd(),configPath:e.config,overrides:{...e.timing===void 0?{}:{build:{timing:e.timing}}}});n.clear(),n.bepack(`dev`,`target ${i.target}`),n.progress(`dev`,`initial build started`);let a=i.packs.bp?.compile,o=e.skipTypecheck?!1:e.typecheck?!0:a?.typecheck??!1,s=!e.skipCopy&&!!(e.copy||e.copyTarget||i.dev.copy),c=e.copyTarget??(typeof i.dev.copy==`string`?i.dev.copy:void 0),l=a?.cache.dev??!0,u=!!e.dryRun,d=!!(e.json||e.silent),f=e.optimize===void 0?{}:{optimize:!!e.optimize};return await Fr({cwd:r,config:i,logger:n,mode:e.mode,command:`dev`,...e.rolldownConfig?{rolldownConfig:e.rolldownConfig}:{},typecheck:!!o,cache:l,dryRun:u,quiet:d}),s&&await wi(r,i,c,u,n,f),n.done(`dev`,`initial build complete in ${n.formatDuration(Date.now()-t)}`),za(r,i,n,{copy:s,mode:e.mode,...c?{copyTarget:c}:{},...e.rolldownConfig?{rolldownConfig:e.rolldownConfig}:{},...f,typecheck:!!o,cache:l,dryRun:u,quiet:d}),{ok:!0,command:`dev`,initialBuildDurationMs:Date.now()-t}}In();function Ha(e){let t=/* @__PURE__ */ new WeakSet;function n(e){if(typeof e==`function`)return`[function]`;if(e instanceof RegExp)return e.toString();if(typeof e!=`object`||!e)return e;if(t.has(e))return`[circular]`;t.add(e);let r=Array.isArray(e)?e.map(n):Object.fromEntries(Object.entries(e).map(([e,t])=>[e,n(t)]));return t.delete(e),r}return n(e)}async function Ua(e){let t=new Oe({...e,silent:e.silent||e.json}),{cwd:n,config:r,path:i}=await Nn({cwd:e.cwd??process.cwd(),configPath:e.config});if(e.json)return{cwd:n,configFile:i,config:Ha(r)};if(e.summary){t.bepack(`config`,i),t.info(`root: ${r.root}`),t.info(`name: ${r.name}`),t.info(`version: ${r.version}`),r.description&&t.info(`description: ${r.description}`),t.info(`target: ${r.target}`);let e=[];if(r.packs.bp&&e.push(`bp`),r.packs.rp&&e.push(`rp`),t.info(`packs: ${e.join(`, `)}`),r.packs.bp?.compile){let e=r.packs.bp.compile;t.info(`compile.entry: ${e.entry}`),t.info(`compile.scriptOutputDir: ${e.scriptOutputDir}`),t.info(`compile.preserveModules: ${e.preserveModules}`),t.info(`compile.typecheck: ${e.typecheck}`),e.external.length>0&&t.info(`compile.external: [${e.external.map(e=>typeof e==`string`?e:e.toString()).join(`, `)}]`)}let n=Object.keys(r.hooks);n.length>0?t.info(`hooks: ${n.join(`, `)}`):t.info(`hooks: (none)`);let a=r.plugins??[];if(a.length>0){t.info(`plugins: ${a.map(e=>`${e.name} (priority ${e.priority??0})`).join(`, `)}`);for(let e of r.pluginDiagnostics??[])t.warn(`plugin conflict: ${e}`)}else t.info(`plugins: (none)`);t.info(`install.registry: ${r.install.registry}`);let o=Object.keys(Pn(r));return o.length>0?t.info(`install.dependencyCatalog: ${o.join(`, `)}`):t.info(`install.dependencyCatalog: (none)`),t.info(`pack.outDir: ${r.pack.outDir}`),r.copy.defaultTarget&&t.info(`copy.defaultTarget: ${r.copy.defaultTarget}`),r.build.copy&&t.info(`build.copy: ${r.build.copy}`),r.dev.copy&&t.info(`dev.copy: ${r.dev.copy}`),{ok:!0,command:`config`}}let a=Ha(r),o=JSON.stringify(a,null,2);return t.bepack(`config`,i),t.info(`cwd: ${n}`),t.info(`configFile: ${i}`),t.info(``),t.info(o),{ok:!0,command:`config`}}R();function Wa(e){return e instanceof L?{code:e.code,message:e.message,...e.details===void 0?{}:{details:e.details},...e.suggestions===void 0?{}:{suggestions:e.suggestions},...e.stack?{stack:e.stack}:{}}:e instanceof Error?{code:`UNKNOWN`,message:e.message,...e.stack?{stack:e.stack}:{}}:{code:`UNKNOWN`,message:String(e)}}function Ga(e){console.log(JSON.stringify(e,null,4))}R();const Ka=De.default.createColors(process.env.NO_COLOR===void 0&&process.env.FORCE_COLOR!==`0`),qa=i(import.meta.url),Ja=s(qa),Ya=c(Ja,`../package.json`);let Xa;try{let e=JSON.parse(n(Ya,`utf-8`));(typeof e.version!=`string`||!e.version)&&(console.error(`ERROR: package.json missing valid 'version' field`),process.exit(1)),Xa=e.version}catch(e){console.error(`ERROR: Failed to read package version: ${e.message}`),process.exit(1)}const $=ge(`bepack`);function Za(e){return e.option(`--cwd <path>`,`Working directory`).option(`--config <path>`,`Config path`).option(`--json`,`JSON output`).option(`--dry-run`,`Do not write files`).option(`--silent`,`Silent output`).option(`--verbose`,`Verbose output`)}let Qa=!1;function $a(e,t,n){let r=Wa(t);if(n)Ga({ok:!1,command:e,error:r});else if(t instanceof L){if(console.error(`${Ka.red(r.code)}: ${r.message}`),r.suggestions?.length)for(let e of r.suggestions)console.error(` ${Ka.dim(`→`)} ${e}`);Qa&&r.stack&&console.error(`${Ka.dim(r.stack)}`)}else t instanceof Error?(console.error(`${Ka.red(`ERROR`)}: ${t.message}`),Qa&&r.stack&&console.error(`${Ka.dim(r.stack)}`)):console.error(`${Ka.red(`ERROR`)}: ${String(t)}`);process.exitCode=1}async function eo(e,t,n){Qa=!!n.verbose;try{let e=await t(n);n.json&&Ga(e)}catch(t){$a(e,t,!!n.json)}}Za($.command(`init`,`Create BePack project`)).option(`--format <format>`,`ts/js/mjs`).option(`--yes`,`Use defaults`).option(`--force`,`Overwrite generated files`).option(`--from-bp <path>`,`Reverse-engineer config from existing BP manifest.json`).option(`--from-rp <path>`,`Reverse-engineer config from existing RP manifest.json`).action(e=>eo(`init`,Et,e)),Za($.command(`install`,`Sync dependencies`)).option(`--target <target>`,`Target MC version`).option(`--registry <url>`,`npm registry`).option(`--pm <pm>`,`Package manager`).option(`--skip-pm`,`Do not run package manager`).option(`--skip-manifest`,`Do not patch manifest`).option(`--skip-package-json`,`Do not patch package.json`).option(`--save-to <field>`,`dependencies/devDependencies`).action(e=>eo(`install`,nr,e)),Za($.command(`manifest`,`Patch manifest files`)).option(`--target <target>`,`Target MC version`).action(e=>eo(`manifest`,rr,e)),Za($.command(`build`,`Build project`)).alias(`b`).option(`--mode <value>`,`Execution mode (passed to hooks)`).option(`--target <target>`,`Target MC version`).option(`--install`,`Run install`).option(`--skip-install`,`Skip install`).option(`--copy`,`Copy after build`).option(`--copy-target <target>`,`Copy target`).option(`--skip-copy`,`Skip copy`).option(`--pack`,`Pack after build`).option(`--skip-pack`,`Skip pack`).option(`--optimize`,`Optimize packed/copied output into __brarchive archives (--no-optimize to disable)`).option(`--typecheck`,`Run typecheck`).option(`--skip-typecheck`,`Skip typecheck`).option(`--preserve-modules`,`Preserve module output`).option(`--use-npx`,`Use npx tsc for typecheck`).option(`--minify`,`Minify output`).option(`--cache`,`Enable incremental compilation cache (--no-cache to disable)`).option(`--rolldown-config <path>`,`Custom rolldown config file (overrides bepack.config)`).option(`--timing`,`Show per-step timing`).action(e=>eo(`build`,Fa,e)),Za($.command(`copy`,`Copy packs`)).option(`--target <target>`,`Copy target`).option(`--all`,`Copy to all targets`).option(`--optimize`,`Optimize the copied packs into __brarchive archives (--no-optimize to disable)`).action(e=>eo(`copy`,Ia,e)),Za($.command(`pack`,`Pack mcpack/mcaddon`)).option(`--name <name>`,`Output name`).option(`--optimize`,`Bundle loose files into __brarchive archives (--no-optimize to disable)`).action(e=>eo(`pack`,Na,e)),Za($.command(`dev`,`Watch project`)).option(`--mode <value>`,`Execution mode (passed to hooks)`).option(`--copy`,`Copy on change`).option(`--copy-target <target>`,`Copy target`).option(`--skip-copy`,`Skip copy`).option(`--typecheck`,`Run typecheck`).option(`--skip-typecheck`,`Skip typecheck`).option(`--rolldown-config <path>`,`Custom rolldown config file (overrides bepack.config)`).option(`--optimize`,`Optimize packed/copied output into __brarchive archives (--no-optimize to disable)`).option(`--timing`,`Show per-step timing`).action(e=>eo(`dev`,Va,e)),Za($.command(`config`,`Show resolved config`)).option(`--summary`,`Show brief summary instead of full config`).action(e=>eo(`config`,Ua,e)),$.help(),$.version(Xa);async function to(e){if($.unsetMatchedCommand(),$.parse(e,{run:!1}),!$.options.help&&!$.options.version){if(!$.matchedCommand){let e=$.args[0]??$.rawArgs.slice(2).find(e=>e!==`--`&&!e.startsWith(`-`));if(e){$a(`cli`,new L(`UNKNOWN_COMMAND`,`Unknown command: ${e}`,{suggestions:["Run `bepack --help` to see available commands."]}),!!$.options.json);return}$.outputHelp();return}try{await $.runMatchedCommand()}catch(e){$a(`cli`,e,!!$.options.json)}}}await to(process.argv);export{};
8
+ `))}outputVersion(){let{name:e}=this.cli,{versionNumber:t}=this.cli.globalCommand;t&&console.info(`${e}/${t} ${fe}`)}checkRequiredArgs(){let e=this.args.filter(e=>e.required).length;if(this.cli.args.length<e)throw new le(`missing required args for command \`${this.rawName}\``)}checkUnknownOptions(){let{options:e,globalCommand:t}=this.cli;if(!this.config.allowUnknownOptions){for(let n of Object.keys(e))if(n!==`--`&&!this.hasOption(n)&&!t.hasOption(n))throw new le(`Unknown option \`${n.length>1?`--${n}`:`-${n}`}\``)}}checkOptionValue(){let{options:e,globalCommand:t}=this.cli,n=[...t.options,...this.options];for(let t of n){let r=e[t.name.split(`.`)[0]];if(t.required){let e=n.some(e=>e.negated&&e.names.includes(t.name));if(r===!0||r===!1&&!e)throw new le(`option \`${t.rawName}\` value is missing`)}}}checkUnusedArgs(){let e=this.args.some(e=>e.variadic)?1/0:this.args.length;if(e<this.cli.args.length)throw new le(`Unused args: ${this.cli.args.slice(e).map(e=>`\`${e}\``).join(`, `)}`)}},me=class extends pe{constructor(e){super(`@@global@@`,``,{},e)}},he=class extends EventTarget{name;commands;globalCommand;matchedCommand;matchedCommandName;rawArgs;args;options;showHelpOnExit;showVersionOnExit;constructor(e=``){super(),this.name=e,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new me(this),this.globalCommand.usage(`<command> [options]`)}usage(e){return this.globalCommand.usage(e),this}command(e,t,n){let r=new pe(e,t||``,n,this);return r.globalCommand=this.globalCommand,this.commands.push(r),r}option(e,t,n){return this.globalCommand.option(e,t,n),this}help(e){return this.globalCommand.option(`-h, --help`,`Display this message`),this.globalCommand.helpCallback=e,this.showHelpOnExit=!0,this}version(e,t=`-v, --version`){return this.globalCommand.version(e,t),this.showVersionOnExit=!0,this}example(e){return this.globalCommand.example(e),this}outputHelp(){this.matchedCommand?this.matchedCommand.outputHelp():this.globalCommand.outputHelp()}outputVersion(){this.globalCommand.outputVersion()}setParsedInfo({args:e,options:t},n,r){return this.args=e,this.options=t,n&&(this.matchedCommand=n),r&&(this.matchedCommandName=r),this}unsetMatchedCommand(){this.matchedCommand=void 0,this.matchedCommandName=void 0}parse(e,{run:t=!0}={}){if(!e){if(!de)throw Error(`No argv provided and runtime process argv is not available.`);e=de}this.rawArgs=e,this.name||=e[1]?se(e[1]):`cli`;let n=!0;for(let t of this.commands){let r=this.mri(e.slice(2),t),i=r.args[0];if(t.isMatched(i)){n=!1;let e={...r,args:r.args.slice(1)};this.setParsedInfo(e,t,i),this.dispatchEvent(new CustomEvent(`command:${i}`,{detail:t}))}}if(n){for(let t of this.commands)if(t.isDefaultCommand){n=!1;let r=this.mri(e.slice(2),t);this.setParsedInfo(r,t),this.dispatchEvent(new CustomEvent(`command:!`,{detail:t}))}}if(n){let t=this.mri(e.slice(2));this.setParsedInfo(t)}this.options.help&&this.showHelpOnExit&&(this.outputHelp(),t=!1,this.unsetMatchedCommand()),this.options.version&&this.showVersionOnExit&&this.matchedCommandName==null&&(this.outputVersion(),t=!1,this.unsetMatchedCommand());let r={args:this.args,options:this.options};return t&&this.runMatchedCommand(),!this.matchedCommand&&this.args[0]&&this.dispatchEvent(new CustomEvent(`command:*`,{detail:this.args[0]})),r}mri(e,t){let n=[...this.globalCommand.options,...t?t.options:[]],r=P(n),i=[],a=e.indexOf(`--`);a!==-1&&(i=e.slice(a+1),e=e.slice(0,a));let o=N(e,r);o=Object.keys(o).reduce((e,t)=>({...e,[ce(t)]:o[t]}),{_:[]});let s=o._,c={"--":i},l=t&&t.config.ignoreOptionDefaultValue?t.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,u=Object.create(null);for(let e of n){if(!l&&e.config.default!==void 0)for(let t of e.names)c[t]=e.config.default;Array.isArray(e.config.type)&&u[e.name]===void 0&&(u[e.name]=Object.create(null),u[e.name].shouldTransform=!0,u[e.name].transformFunction=e.config.type[0])}for(let e of Object.keys(o))e!==`_`&&(F(c,e.split(`.`),o[e]),oe(c,u));return{args:s,options:c}}runMatchedCommand(){let{args:e,options:t,matchedCommand:n}=this;if(!n||!n.commandAction)return;n.checkUnknownOptions(),n.checkOptionValue(),n.checkRequiredArgs(),n.checkUnusedArgs();let r=[];return n.args.forEach((t,n)=>{t.variadic?r.push(e.slice(n)):r.push(e[n])}),r.push(t),n.commandAction.apply(this,r)}};const ge=(e=``)=>new he(e);function _e(e,t){try{return JSON.parse(e)}catch(e){throw Error(`Invalid JSON in ${t}: ${e instanceof Error?e.message:String(e)}`)}}function ve(e){return`${JSON.stringify(e,null,4)}\n`}async function I(e){try{return await t.access(e),!0}catch{return!1}}async function ye(e){await t.mkdir(e,{recursive:!0})}async function be(e){await t.rm(e,{recursive:!0,force:!0}),await t.mkdir(e,{recursive:!0})}async function xe(e){return _e(await t.readFile(e,`utf8`),e)}async function Se(e,n){await ye(o.dirname(e)),await t.writeFile(e,ve(n),`utf8`)}async function Ce(e,n){await t.rm(n,{recursive:!0,force:!0}),await t.mkdir(o.dirname(n),{recursive:!0}),await t.cp(e,n,{recursive:!0})}var L=class extends Error{code;details;suggestions;constructor(e,t,n={}){super(t),this.name=`BePackError`,this.code=e,this.details=n.details,this.suggestions=n.suggestions}},we=/* @__PURE__ */ A((/* @__PURE__ */ O(((e,t)=>{let n=process||{},r=n.argv||[],i=n.env||{},a=!(i.NO_COLOR||r.includes(`--no-color`))&&(!!i.FORCE_COLOR||r.includes(`--color`)||n.platform===`win32`||(n.stdout||{}).isTTY&&i.TERM!==`dumb`||!!i.CI),o=(e,t,n=e)=>r=>{let i=``+r,a=i.indexOf(t,e.length);return~a?e+s(i,t,n,a)+t:e+i+t},s=(e,t,n,r)=>{let i=``,a=0;do i+=e.substring(a,r)+n,a=r+t.length,r=e.indexOf(t,a);while(~r);return i+e.substring(a)},c=(e=a)=>{let t=e?o:()=>String;return{isColorSupported:e,reset:t(`\x1B[0m`,`\x1B[0m`),bold:t(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:t(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:t(`\x1B[3m`,`\x1B[23m`),underline:t(`\x1B[4m`,`\x1B[24m`),inverse:t(`\x1B[7m`,`\x1B[27m`),hidden:t(`\x1B[8m`,`\x1B[28m`),strikethrough:t(`\x1B[9m`,`\x1B[29m`),black:t(`\x1B[30m`,`\x1B[39m`),red:t(`\x1B[31m`,`\x1B[39m`),green:t(`\x1B[32m`,`\x1B[39m`),yellow:t(`\x1B[33m`,`\x1B[39m`),blue:t(`\x1B[34m`,`\x1B[39m`),magenta:t(`\x1B[35m`,`\x1B[39m`),cyan:t(`\x1B[36m`,`\x1B[39m`),white:t(`\x1B[37m`,`\x1B[39m`),gray:t(`\x1B[90m`,`\x1B[39m`),bgBlack:t(`\x1B[40m`,`\x1B[49m`),bgRed:t(`\x1B[41m`,`\x1B[49m`),bgGreen:t(`\x1B[42m`,`\x1B[49m`),bgYellow:t(`\x1B[43m`,`\x1B[49m`),bgBlue:t(`\x1B[44m`,`\x1B[49m`),bgMagenta:t(`\x1B[45m`,`\x1B[49m`),bgCyan:t(`\x1B[46m`,`\x1B[49m`),bgWhite:t(`\x1B[47m`,`\x1B[49m`),blackBright:t(`\x1B[90m`,`\x1B[39m`),redBright:t(`\x1B[91m`,`\x1B[39m`),greenBright:t(`\x1B[92m`,`\x1B[39m`),yellowBright:t(`\x1B[93m`,`\x1B[39m`),blueBright:t(`\x1B[94m`,`\x1B[39m`),magentaBright:t(`\x1B[95m`,`\x1B[39m`),cyanBright:t(`\x1B[96m`,`\x1B[39m`),whiteBright:t(`\x1B[97m`,`\x1B[39m`),bgBlackBright:t(`\x1B[100m`,`\x1B[49m`),bgRedBright:t(`\x1B[101m`,`\x1B[49m`),bgGreenBright:t(`\x1B[102m`,`\x1B[49m`),bgYellowBright:t(`\x1B[103m`,`\x1B[49m`),bgBlueBright:t(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:t(`\x1B[105m`,`\x1B[49m`),bgCyanBright:t(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:t(`\x1B[107m`,`\x1B[49m`)}};t.exports=c(),t.exports.createColors=c})))(),1);const R=we.default.createColors(process.env.NO_COLOR===void 0&&process.env.FORCE_COLOR!==`0`);var Te=class{options;constructor(e={}){this.options=e}formatDuration(e){return R.green(`${(e/1e3).toFixed(2)}s`)}info(e){this.options.silent||console.log(e)}warn(e){this.options.silent||console.warn(R.yellow(e))}error(e){this.options.silent||console.error(R.red(e))}verbose(e){!this.options.silent&&this.options.verbose&&console.log(R.gray(e))}clear(){this.options.silent||console.clear()}step(e,t,n=`cyan`){this.info(`${R[n](e.padEnd(10))} ${t}`)}progress(e,t){this.step(e,t,`blue`)}success(e,t){this.step(e,t,`green`)}bepack(e,t){this.info(`${R.green(`bepack`)} ${R.bold(e)} ${R.gray(t)}`)}manifest(e){this.step(`manifest`,e,`yellow`)}typescript(e){this.step(`TS`,e,`blue`)}rolldown(e){this.step(`rolldown`,e,`magenta`)}install(e){this.step(`install`,e,`blue`)}copy(e){this.step(`copy`,e,`cyan`)}pack(e){this.step(`pack`,e,`magenta`)}hook(e,t){this.step(`hook`,`${e}: ${t}`,`gray`)}timing(e,t){this.step(`timing`,`${e.padEnd(14)} ${t} ms`,`gray`)}done(e,t){this.info(`${R.green(`√`)} ${R.green(e)} ${t}`)}};function Ee(e){return Array.isArray(e)&&e.length===3&&typeof e[0]==`number`&&typeof e[1]==`number`&&typeof e[2]==`number`}function De(e){return typeof e==`string`&&/^\d+\.\d+\.\d+$/.test(e)}function Oe(e){return e===3?De:Ee}function ke(e,t){return e===3?`${t} must be SemVer string like "x.y.z" (format 3)`:`${t} must be [number, number, number] (format 2)`}const Ae=[e=>e.format_version===void 0?`format_version is required`:null,e=>e.header?null:`header is required`,e=>e.header&&!e.header.name?`header.name is required`:null,e=>e.header&&!e.header.uuid?`header.uuid is required`:null,e=>e.header?Oe(e.format_version)(e.header.version)?null:ke(e.format_version,`header.version`):null,e=>e.header?Oe(e.format_version)(e.header.min_engine_version)?null:ke(e.format_version,`header.min_engine_version`):null,e=>e.modules!==void 0&&!Array.isArray(e.modules)?`modules must be an array`:null,(e,t)=>{if(!Array.isArray(e.modules))return null;let n=e.modules.some(e=>e?.type===`resources`),r=[];return t===`rp`&&!n&&r.push(`RP manifest must have a resources module`),r.length>0?r:null},e=>{if(!Array.isArray(e.modules))return null;let t=Oe(e.format_version),n=[];for(let r=0;r<e.modules.length;r++){let i=e.modules[r];i&&i.version!==void 0&&i.version!==null&&!t(i.version)&&n.push(`modules[${r}] (uuid: ${i.uuid??`unknown`}): ${ke(e.format_version,`version`)}`)}return n.length>0?n:null},e=>e.dependencies!==void 0&&!Array.isArray(e.dependencies)?`dependencies must be an array`:null,e=>{if(!Array.isArray(e.dependencies))return null;let t=Oe(e.format_version),n=[];for(let r=0;r<e.dependencies.length;r++){let i=e.dependencies[r];if(!i){n.push(`dependencies[${r}] is invalid`);continue}`uuid`in i&&i.uuid&&!t(i.version)&&n.push(`dependencies[${r}] (uuid: ${i.uuid}): ${ke(e.format_version,`version`)}`),`module_name`in i&&i.module_name&&typeof i.version!=`string`&&n.push(`dependencies[${r}] (module_name: ${i.module_name}): version must be a string`)}return n.length>0?n:null},e=>e.capabilities===void 0?null:Array.isArray(e.capabilities)?e.capabilities.every(e=>typeof e==`string`)?null:`capabilities must be an array of strings`:`capabilities must be an array`,e=>e.metadata!==void 0&&(typeof e.metadata!=`object`||e.metadata===null)?`metadata must be an object`:null];function je(e,t){let n=[];for(let r of Ae){let i=r(e,t);i!==null&&(Array.isArray(i)?n.push(...i):n.push(i))}if(n.length>0)throw new L(`MANIFEST_INVALID`,`Manifest validation failed: ${n.join(`; `)}`)}function Me(e){return!e||typeof e!=`object`||Array.isArray(e)?{}:{...e}}function Ne(e){return Array.isArray(e)?e:[]}function Pe(e){if(!(e&&Object.keys(e).length===0))return e}var Fe=class{static async read(e){if(!await I(e))return;let n=await t.readFile(e,`utf8`);try{return Me(JSON.parse(n))}catch{throw new L(`MANIFEST_INVALID`,`Invalid JSON in manifest: ${e}`)}}static async write(e,t,n){je(t,n),await Se(e,t)}};function Ie(e){let t=/^(\d+)\.(\d+)\.(\d+)$/.exec(e);if(!t)throw new L(`VERSION_INVALID`,`Manifest version requires x.y.z.`,{details:{version:e}});return[Number(t[1]),Number(t[2]),Number(t[3])]}function Le(e){return/^\d+\.\d+\.\d+(?:[-.][0-9A-Za-z.-]+)?$/.test(e)}function z(e,t){let n=e.split(/[^0-9A-Za-z]+/),r=t.split(/[^0-9A-Za-z]+/),i=Math.max(n.length,r.length);for(let e=0;e<i;e+=1){let t=n[e]??``,i=r[e]??``,a=/^\d+$/.test(t)?Number(t):NaN,o=/^\d+$/.test(i)?Number(i):NaN,s=Number.isNaN(a)||Number.isNaN(o)?t.localeCompare(i):a-o;if(s!==0)return s}return 0}function Re(e){return e===`latest`||z(e,`1.21.120`)>=0}function ze(e){let t=/^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/.exec(e.trim());if(!t)return;let n=/(?:^|[.-])(\d+)\.(\d+)\.(\d+)(?:[.-]|$)/.exec(t[4]??``);return{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3]),...n?{minecraftTarget:[Number(n[1]),Number(n[2]),Number(n[3])]}:{}}}function Be(e,t){for(let n of[`major`,`minor`,`patch`])if(e[n]!==t[n])return e[n]-t[n];return 0}function Ve(e,t){let n=ze(e);return n?t.split(`||`).some(e=>{let t=/(?:\^|~|>=|<=|>|<|=)?\s*(v?\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?)/.exec(e.trim()),r=t?ze(t[1]):void 0;return!r||n.major!==r.major||Be(n,r)<0?!1:r.minecraftTarget?n.minecraftTarget?z(n.minecraftTarget.join(`.`),r.minecraftTarget.join(`.`))>=0:!1:!0}):!1}function He(e){if(e===`stable`||e===`beta`||e===`preview`)throw new L(`DEPENDENCY_VERSION_INVALID`,`${e} must be resolved from npm registry before writing package.json.`,{details:{specifier:e}});if(Le(e))return e;throw new L(`DEPENDENCY_VERSION_INVALID`,`Unsupported dependency version: ${e}`,{details:{specifier:e}})}function Ue(e){return e.filter(e=>/^\d+\.\d+\.\d+$/.test(e)).sort(z)}function We(e){return e.filter(e=>/(?:^|[-.])beta(?:[-.]|$)/i.test(e)).sort(z)}var Ge=class{npm;logger;constructor(e,t){this.npm=e,this.logger=t}latestStable(e,t){let n=this.npm.distTag(t,`latest`);if(n&&/^\d+\.\d+\.\d+$/.test(n))return this.logger?.verbose(`Resolved ${e}@stable -> ${n}`),n;let r=Ue(this.npm.versions(t)).at(-1);if(!r)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve latest stable version for ${e}.`,{details:{package:e}});return this.logger?.verbose(`Resolved ${e}@stable -> ${r}`),r}latestBeta(e,t){let n=this.npm.distTag(t,`beta`);if(n)return this.logger?.verbose(`Resolved ${e}@beta -> ${n}`),n;let r=We(this.npm.versions(t)).at(-1);if(!r)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve latest beta version for ${e}.`,{details:{package:e}});return this.logger?.verbose(`Resolved ${e}@beta -> ${r}`),r}betaForTarget(e,t,n){let r=t.replace(/\./g,`\\.`),i=RegExp(`beta[-.]${r}-stable`),a=this.npm.versions(n).filter(e=>i.test(e)).sort(z).at(-1);if(!a)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve ${e}@beta for target ${t}.`,{details:{package:e,specifier:`beta`,target:t},suggestions:[`Use target: "latest"`,`Specify an exact version`,`Update BePack`,`Manually edit package.json and manifest.json`]});return this.logger?.verbose(`Resolved ${e}@beta for target ${t} -> ${a}`),a}inferStableFromBeta(e,t,n,r){let i=/^(\d+)\.(\d+)\.(\d+)-beta[.-]/.exec(n);if(!i)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot infer stable version from ${e}@${n}.`,{details:{package:e,beta:n,target:t}});let a=Number(i[1]),o=Number(i[2])-1,s=`${a}.${o}.${Number(i[3])}`;if(o<0||!r.versions?.[s])throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot confirm inferred stable version ${s} for ${e}.`,{details:{package:e,target:t,beta:n,inferredStable:s}});return s}};function Ke(e,t){return t===`latest`||Re(t)?`beta`:/^(\d+\.\d+\.\d+-beta)/i.exec(e)?.[1]??e}function qe(e,t,n){let r=We(t).filter(e=>/^\d+\.\d+\.\d+-beta\.\d+\.\d+\.\d+/.test(e)).filter(e=>!/(?:rc|beta)\.\d+\.\d+\.\d+-preview\.\d+$/i.test(e)).at(-1);if(!r)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve latest beta version for ${e}.`,{details:{package:e}});return n?.verbose(`Resolved ${e}@beta -> ${r}`),r}function Je(e){return e.filter(e=>/(?:rc|beta)\.\d+\.\d+\.\d+-preview\.\d+$/i.test(e)).sort(z)}function Ye(e,t,n){let r=Je(t).at(-1);if(!r)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve latest preview version for ${e}.`,{details:{package:e}});return n?.verbose(`Resolved ${e}@preview -> ${r}`),r}function Xe(e,t,n,r){let i=n.replace(/\./g,`\\.`),a=RegExp(`(?:rc|beta)\\.${i}-preview\\.\\d+$`),o=t.filter(e=>a.test(e)).sort(z).at(-1);if(!o)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve ${e}@preview for target ${n}.`,{details:{package:e,specifier:`preview`,target:n},suggestions:[`Use target: "latest"`,`Specify an exact version`]});return r?.verbose(`Resolved ${e}@preview for target ${n} -> ${o}`),o}const Ze={name:`minecraft-script-api`,resolver:`minecraft-script-api`,match:e=>e.specifier===`stable`||e.specifier===`beta`||e.specifier===`preview`,async resolve(e){let t=await e.npm.metadata(e.packageName),n=new Ge(e.npm,e.logger);if(e.specifier===`stable`){e.logger?.verbose(`Resolving ${e.packageName}@stable for target ${e.target}`);let r=e.target===`latest`?n.latestStable(e.packageName,t):n.inferStableFromBeta(e.packageName,e.target,n.betaForTarget(e.packageName,e.target,t),t);return{packageVersion:r,manifestVersion:r}}if(e.specifier===`beta`){e.logger?.verbose(`Resolving ${e.packageName}@beta for target ${e.target}`);let r=e.target===`latest`?qe(e.packageName,e.npm.versions(t),e.logger):n.betaForTarget(e.packageName,e.target,t);return{packageVersion:r,manifestVersion:Ke(r,e.target)}}e.logger?.verbose(`Resolving ${e.packageName}@preview for target ${e.target}`);let r=e.target===`latest`?Ye(e.packageName,e.npm.versions(t),e.logger):Xe(e.packageName,e.npm.versions(t),e.target,e.logger);return{packageVersion:r,manifestVersion:r}}},Qe={name:`minecraft-script-api-bp`,resolver:`minecraft-script-api-bp`,match:e=>e.specifier===`beta`||e.specifier===`preview`,async resolve(e){let t=await e.npm.metadata(e.packageName),n=new Ge(e.npm,e.logger);if(e.specifier===`beta`){e.logger?.verbose(`Resolving ${e.packageName}@beta for target ${e.target}`);let r=e.target===`latest`?qe(e.packageName,e.npm.versions(t),e.logger):n.betaForTarget(e.packageName,e.target,t);return{packageVersion:r,manifestVersion:Ke(r,e.target)}}e.logger?.verbose(`Resolving ${e.packageName}@preview for target ${e.target}`);let r=e.target===`latest`?Ye(e.packageName,e.npm.versions(t),e.logger):Xe(e.packageName,e.npm.versions(t),e.target,e.logger);return{packageVersion:r,manifestVersion:r}}},$e=/^\d+\.\d+\.\d+$/,et=/^\d+\.\d+\.\d+-preview\.\d+$/,tt={name:`minecraft-vanilla-data`,resolver:`minecraft-vanilla-data`,match:e=>e.specifier===`stable`||e.specifier===`preview`,async resolve(e){let t=await e.npm.metadata(e.packageName);return e.specifier===`stable`?nt(e,t):rt(e,t)}};function nt(e,t){if(e.logger?.verbose(`Resolving ${e.packageName}@stable for target ${e.target}`),e.target===`latest`){let n=e.npm.distTag(t,`latest`);if(n&&$e.test(n))return e.logger?.verbose(`Resolved ${e.packageName}@stable -> ${n}`),{packageVersion:n};let r=e.npm.versions(t).filter(e=>$e.test(e)).sort(z).at(-1);if(!r)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve latest stable version for ${e.packageName}.`,{details:{package:e.packageName}});return e.logger?.verbose(`Resolved ${e.packageName}@stable -> ${r}`),{packageVersion:r}}if(t.versions?.[e.target])return e.logger?.verbose(`Resolved ${e.packageName}@stable for target ${e.target} -> ${e.target}`),{packageVersion:e.target};throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve ${e.packageName}@stable for target ${e.target}. The target version does not exist in the registry.`,{details:{package:e.packageName,specifier:`stable`,target:e.target},suggestions:[`Use target: "latest"`,`Specify an exact version`]})}function rt(e,t){if(e.logger?.verbose(`Resolving ${e.packageName}@preview for target ${e.target}`),e.target===`latest`){let n=e.npm.versions(t).filter(e=>et.test(e)).sort(z).at(-1);if(!n)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve latest preview version for ${e.packageName}.`,{details:{package:e.packageName}});return e.logger?.verbose(`Resolved ${e.packageName}@preview -> ${n}`),{packageVersion:n}}let n=e.target.replace(/\./g,`\\.`),r=RegExp(`^${n}-preview\\.\\d+$`),i=e.npm.versions(t).filter(e=>r.test(e)).sort(z).at(-1);if(!i)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot resolve ${e.packageName}@preview for target ${e.target}. No matching preview version found.`,{details:{package:e.packageName,specifier:`preview`,target:e.target},suggestions:[`Use target: "latest"`,`Specify an exact preview version`]});return e.logger?.verbose(`Resolved ${e.packageName}@preview for target ${e.target} -> ${i}`),{packageVersion:i}}const it={"@minecraft/common":{resolver:Ze,manifest:!0},"@minecraft/server":{resolver:Ze,manifest:!0},"@minecraft/server-ui":{resolver:Ze,manifest:!0},"@minecraft/server-net":{resolver:Qe,manifest:!0},"@minecraft/server-admin":{resolver:Qe,manifest:!0},"@minecraft/server-gametest":{resolver:Qe,manifest:!0},"@minecraft/debug-utilities":{resolver:Qe,manifest:!0},"@minecraft/diagnostics":{resolver:Qe,manifest:!0},"@minecraft/server-graphics":{resolver:Qe,manifest:!0},"@minecraft/server-editor":{resolver:Qe,manifest:!0},"@minecraft/vanilla-data":{resolver:tt,manifest:!1}};var at=class e{static validateHeader(e,t){if(!e.header?.name||!e.header?.uuid)throw new L(`MANIFEST_INVALID`,`${t} manifest is missing header.name or header.uuid`);return{name:e.header.name,uuid:e.header.uuid,...e.header.description?{description:e.header.description}:{}}}static findScriptModuleUuid(t){for(let n of t.modules??[])if(n&&e.isScriptModule(n))return n.uuid}static findScriptModuleEntry(t){for(let n of t.modules??[])if(n&&e.isScriptModule(n))return n.entry}static findResourcesModuleUuid(t){for(let n of t.modules??[])if(n&&e.isResourcesModule(n))return n.uuid}static matchDependencies(e){let t={};for(let n of e.dependencies??[])if(`module_name`in n&&typeof n.module_name==`string`){let e=n.module_name;it[e]&&(t[e]=typeof n.version==`string`?n.version:String(n.version))}return t}static isScriptModule(e){return e?.type===`script`&&e?.language===`javascript`}static isResourcesModule(e){return e?.type===`resources`}};function ot(e,t){if(typeof e!=`string`||!e)throw new L(`MANIFEST_INVALID`,`${t} script module entry must be a non-empty string.`);let n=e.replace(/\\/g,`/`);if(o.posix.isAbsolute(n)||o.win32.isAbsolute(n))throw new L(`MANIFEST_INVALID`,`${t} script module entry must be a relative path, got absolute: "${e}".`);if(!n.endsWith(`.js`))throw new L(`MANIFEST_INVALID`,`${t} script module entry must end with .js, got: "${e}".`);let r=n.split(`/`);if(r.includes(`..`))throw new L(`MANIFEST_INVALID`,`${t} script module entry must not contain "..": "${e}".`);if(r.includes(``))throw new L(`MANIFEST_INVALID`,`${t} script module entry must not contain empty segments: "${e}".`);return n}function st(e,t){let n=o.resolve(e,t),r=o.dirname(n),i=o.relative(e,r);if(i.startsWith(`..`)||o.isAbsolute(i))throw new L(`CONFIG_INVALID`,`Manifest path is outside the project directory: ${t}`);return i||`.`}async function ct(e,t){if(!t&&await I(e))throw new L(`CONFIG_INVALID`,`Config file already exists: ${e}. Use --force to overwrite.`,{suggestions:[`Pass --force to overwrite the existing file.`]})}async function lt(e,n,r,i=!1){return await ct(e,r),!i&&(await ye(o.dirname(e)),await t.writeFile(e,n,`utf8`),!0)}const ut=[`.ts`,`.mts`,`.js`,`.mjs`];async function dt(e,t){let n=(t===`main`?[`main`]:[t,`main`]).flatMap(e=>ut.map(t=>`src/${e}${t}`));for(let t of n)if(await I(o.join(e,t))){let e=o.extname(t);return{entry:t,typecheckable:e===`.ts`||e===`.mts`,searched:n}}}function ft(e){return(e===`main`?[`main`]:[e,`main`]).map(e=>`src/${e}.{${ut.join(`,`).replace(/\./g,``)}}`).join(` or `)}function pt(e){return`export default ${JSON.stringify(e,null,4).replace(/\n( +)"([a-zA-Z_$][a-zA-Z0-9_$]*)": /g,`
9
+ $1$2: `)}\n`}function mt(e){if(e){if(Array.isArray(e))return e.join(`.`);if(typeof e==`string`)return e}}function ht(e,t){return e[0]===t[0]?e[1]===t[1]?e[2]-t[2]:e[1]-t[1]:e[0]-t[0]}function gt(e){if(Array.isArray(e)&&e.length===3)return e;if(typeof e==`string`){let t=e.split(`.`).map(Number);if(t.length===3&&t.every(e=>!Number.isNaN(e)))return t}}async function _t(e,t){let n=t.format??`ts`;if(![`ts`,`js`,`mjs`].includes(n))throw new L(`CONFIG_INVALID`,`init --format must be ts, js, or mjs.`);let r=o.join(e,`bepack.config.${n}`),i=!!t.force,a=!!t.dryRun,s=new Te({silent:t.silent,verbose:t.verbose}),c=!!t.fromBp,l=!!t.fromRp,u,d,f,p=!1,m,h,g,_,v,y,b=[];if(c){let n=o.resolve(e,t.fromBp),r=await Fe.read(n);if(!r)throw new L(`CONFIG_NOT_FOUND`,`BP manifest not found: ${t.fromBp}`);f??=r.format_version,r.format_version!==void 0&&r.header?.version!==void 0&&(r.format_version===3&&Array.isArray(r.header.version)||r.format_version===2&&typeof r.header.version==`string`)&&(p=!0);let i=at.validateHeader(r,`BP`),a=at.findScriptModuleUuid(r),s=at.findScriptModuleEntry(r),c=mt(r.header?.version);c&&b.push(c),u={root:st(e,n),uuid:i.uuid,...a?{moduleUuid:a}:{},...c?{version:c}:{},deps:at.matchDependencies(r),...s?{scriptEntry:s}:{}},m=i.name,h=i.description,g=i.name,_=i.description}if(l){let n=o.resolve(e,t.fromRp),r=await Fe.read(n);if(!r)throw new L(`CONFIG_NOT_FOUND`,`RP manifest not found: ${t.fromRp}`);f??=r.format_version,r.format_version!==void 0&&r.header?.version!==void 0&&(r.format_version===3&&Array.isArray(r.header.version)||r.format_version===2&&typeof r.header.version==`string`)&&(p=!0);let i=at.validateHeader(r,`RP`),a=at.findResourcesModuleUuid(r);if(!a)throw new L(`MANIFEST_INVALID`,`RP manifest is missing a resources module with uuid`);let s=mt(r.header?.version);s&&b.push(s),d={root:st(e,n),uuid:i.uuid,moduleUuid:a,...s?{version:s}:{}},c||(m=i.name,h=i.description),v=i.name,y=i.description}let x;if(b.length===1)x=b[0];else if(b.length===2){let e=b[0],t=b[1];if(e===t)x=e;else{let n=gt(e),r=gt(t);x=n&&r?ht(n,r)>=0?e:t:e,s.warn(`BP version (${e}) and RP version (${t}) differ. Using ${x}.`)}}p&&(s.warn(`Detected format_version ${f} doesn't match the actual version format used in manifest. Falling back to format_version 2.`),f=2);let S={root:`.`,target:`latest`,pack:{outDir:`dist`}};f!==void 0&&(S.manifestFormat=f),x&&(S.version=x),m&&(S.name=m),h&&(S.description=h);let C={};if(u){let t={root:u.root,uuid:u.uuid};if(u.moduleUuid){if(t.moduleUuid=u.moduleUuid,u.scriptEntry){let n=ot(u.scriptEntry,`BP`),r=o.posix.dirname(n),i=o.posix.basename(n,`.js`);if(r===`.`)throw new L(`MANIFEST_INVALID`,`BP manifest script entry "${u.scriptEntry}" is at the BP root. BePack cannot safely manage root-level script output because the output directory would need to be emptied on each build, which would delete the entire BP root. Please add a subdirectory prefix to the script module entry in your manifest.json (e.g. "scripts/main.js"), then rerun init.`);let a=await dt(e,i);if(a){let n=await I(o.join(e,`tsconfig.json`)),i=a.typecheckable&&n;t.compile={entry:a.entry,scriptOutputDir:r,...i?{}:{typecheck:!1}},i||s.warn(`Detected script entry "${u.scriptEntry}" with source "${a.entry}", but ${a.typecheckable?`tsconfig.json is missing`:`the source is JavaScript`}. Generated config sets compile.typecheck: false.`+(a.typecheckable?` Add tsconfig.json and remove that flag to enable typechecking.`:``))}else s.warn(`BP manifest declares script entry "${u.scriptEntry}" but no matching source file exists (looked for ${ft(i)}). Leaving packs.bp.compile unset: the existing "${r}" folder is copied/packed as-is. Set packs.bp.compile manually once you add sources.`)}else s.warn("BP manifest has a script module but no `entry` field, so the script output directory cannot be derived. Leaving packs.bp.compile unset; add it manually to compile TypeScript into the pack.")}g&&(t.name=g),_&&(t.description=_),Object.keys(u.deps).length>0&&(t.dependencies={...u.deps}),C.bp=t}if(d){let e={root:d.root,uuid:d.uuid,moduleUuid:d.moduleUuid};v&&(e.name=v),y&&(e.description=y),C.rp=e}S.packs=C,process.platform===`win32`&&(S.copy={defaultTarget:`win`});let w=await lt(r,pt(S),i,a);return a&&s.info(`init dry-run: would create ${r}`),{ok:!0,command:`init`,dryRun:a,filesCreated:+!!w,files:[r]}}function vt(){return pt({root:`.`,name:`example-addon`,version:`1.0.0`,target:`latest`,packs:{bp:{root:`bp`,uuid:l(),moduleUuid:l(),compile:{entry:`src/main.ts`},dependencies:{"@minecraft/server":`stable`}}},pack:{outDir:`dist`}})}async function yt(e){let t=o.resolve(e.cwd??process.cwd());if(e.fromBp||e.fromRp)return await _t(t,e);let n=e.format??`ts`;if(![`ts`,`js`,`mjs`].includes(n))throw new L(`CONFIG_INVALID`,`init --format must be ts, js, or mjs.`);let r=o.join(t,`bepack.config.${n}`),i=!!e.dryRun,a=await lt(r,vt(),!!e.force,i);return i&&new Te({silent:e.silent,verbose:e.verbose}).info(`init dry-run: would create ${r}`),{ok:!0,command:`init`,dryRun:i,filesCreated:+!!a,files:[r]}}const bt=[`bepack.config.ts`,`bepack.config.mjs`,`bepack.config.js`],B={root:`.`,configured:{root:!1,packOutDir:!1},name:`minecraft-addon`,version:`1.0.0`,description:``,replace:{values:{},builtins:{VERSION:!1,NAME:!1,UUID:!1,DESCRIPTION:!1}},target:`latest`,plugins:[],install:{registry:`https://registry.npmjs.org/`,saveTo:`dependencies`,packageManager:`auto`,runPackageManager:!0,updatePackageJson:!0,updateManifest:!0,dependencyCatalog:{},dependencyResolvers:[]},build:{copy:!1,timing:!1},dev:{copy:!1},copy:{defaultTarget:``,targets:{}},pack:{name:`{name}-{version}`,outDir:`dist`},hooks:{}},xt={dev:!0,build:!1,file:`node_modules/.cache/bepack/tsconfig.tsbuildinfo`},St={keepLooseFiles:!1,keepLoose:[],exclude:[],minifyJson:!0,packOptimizationVersion:`0.1.0`,allowUnsupportedTarget:!1},Ct={entry:`src/main.ts`,define:{},tsconfig:`tsconfig.json`,typecheck:!0,preserveModules:!0,external:[/^@minecraft\/server.*/],useNpx:!1,minify:!1,cache:xt,scriptOutputDir:`scripts`},wt=[`world`,`global`,`any`];function Tt(e){let t=[];return e.packs.bp&&t.push({type:`bp`,root:e.packs.bp.root,uuid:e.packs.bp.uuid,...e.packs.bp.moduleUuid===void 0?{}:{moduleUuid:e.packs.bp.moduleUuid},name:e.packs.bp.name,include:e.packs.bp.include}),e.packs.rp&&t.push({type:`rp`,root:e.packs.rp.root,uuid:e.packs.rp.uuid,moduleUuid:e.packs.rp.moduleUuid,name:e.packs.rp.name,include:e.packs.rp.include}),t}const Et=[`scripts`,`manifest.json`,`animation_controllers`,`animations`,`biomes`,`blocks`,`cameras`,`dialogue`,`entities`,`functions`,`items`,`loot_tables`,`pack_icon.png`,`recipes`,`shapes`,`spawn_rules`,`structures`,`texts`,`trading`,`feature_rules`,`features`,`worldgen`],Dt=[];function Ot(e,t){return o.isAbsolute(t)?t:o.join(e,t)}function V(e){return e.replace(/\\/g,`/`)}function H(e,t){return Ot(e,t.root)}function U(e,t,n){return n===`bp`?t.packs.bp?Ot(e,t.packs.bp.root):void 0:t.packs.rp?Ot(e,t.packs.rp.root):void 0}function kt(e,t){let n=U(H(e,t),t,`bp`);if(!n)throw Error(`packs.bp is not configured`);return n}function At(e,t){let n=U(H(e,t),t,`rp`);if(!n)throw Error(`packs.rp is not configured`);return n}function jt(e){return!!e.packs.bp?.compile}function W(e,t){if(t.packs.bp?.compile)return Ot(H(e,t),t.packs.bp.compile.entry)}function Mt(e,t){if(!t.packs.bp)return;let n=t.packs.bp.compile?.scriptOutputDir??`scripts`;return o.join(kt(e,t),n)}function Nt(e,t){let n=Mt(e,t);if(!n)return;if(!t.packs.bp?.compile)return o.join(n,`main.js`);let r=o.basename(t.packs.bp.compile.entry,o.extname(t.packs.bp.compile.entry));return o.join(n,`${r}.js`)}function Pt(e,t){let n=o.relative(e,t);return n===``||!n.startsWith(`..${o.sep}`)&&n!==`..`&&!o.isAbsolute(n)}function Ft(e,t,n){if(!t||t===`.`)throw new L(`CONFIG_INVALID`,`compile.scriptOutputDir must be a non-empty relative path strictly inside the BP root. Got: "${t}". This directory will be emptied during build.`);let r=t.replace(/\\/g,`/`);if(o.posix.isAbsolute(r)||o.win32.isAbsolute(r))throw new L(`CONFIG_INVALID`,`compile.scriptOutputDir must be a relative path, not absolute. Got: "${t}". This directory will be emptied during build.`);let i=o.posix.normalize(r);if(i.split(`/`).includes(`..`))throw new L(`CONFIG_INVALID`,`compile.scriptOutputDir must not contain ".." (path escape). Got: "${t}" resolves outside the BP root. This directory will be emptied during build.`);let a=o.resolve(e,i),s=o.relative(e,a);if(!s||s.startsWith(`..`)||o.isAbsolute(s))throw new L(`CONFIG_INVALID`,`compile.scriptOutputDir must be a directory strictly inside the BP root. Value: "${t}", resolved: "${a}". This directory will be emptied during build and must not be the BP root or a path outside it.`);if(n&&Pt(a,n))throw new L(`CONFIG_INVALID`,`compile.scriptOutputDir "${t}" dangerously overlaps with the source entry directory. The output directory will be emptied during build and would delete source files.`);return V(s)}function It(e,t,n,i=[]){let a=o.resolve(e),s=o.resolve(t),c=[s,...i.map(e=>o.resolve(e))];for(let t of c)if(Pt(a,t))throw new L(`BUILD_FAILED`,`Safety check failed: ${n} "${e}" would overwrite a protected path ("${t}"). Refusing to empty this directory.`);try{if(!r(a).isDirectory())throw new L(`BUILD_FAILED`,`Safety check failed: ${n} "${e}" is not a directory. Refusing to empty a non-directory path.`)}catch(e){if(e?.code!==`ENOENT`)throw e}let l=o.relative(s,a);if(!l||l.startsWith(`..`)||o.isAbsolute(l))throw new L(`BUILD_FAILED`,`Safety check failed: ${n} "${e}" is not inside the BP root "${t}". Refusing to empty this directory.`)}function Lt(e){let t=[e.packs.bp?.compile?.scriptOutputDir??`scripts`,...Et.filter(e=>e!==`scripts`)],n=e.packs.bp?.include??[],r=[...t,...n],i=/* @__PURE__ */ new Set;return r.filter(e=>!i.has(e)&&(i.add(e),!0))}function Rt(e,t){if(t.packs.bp)return o.join(kt(e,t),`manifest.json`)}function zt(e,t){if(t.packs.rp)return o.join(At(e,t),`manifest.json`)}function Bt(e,t){return Ot(H(e,t),t.pack.outDir)}const Vt=d()!==`win32`;function Ht(e){let t=/* @__PURE__ */ new Set;return e.filter(e=>{let n=V(o.resolve(e)),r=Vt?n:n.toLowerCase();return!t.has(r)&&(t.add(r),!0)})}const Ut={VERSION:e=>e.version,NAME:e=>e.name,UUID:e=>e.packs.bp?.uuid??``,DESCRIPTION:e=>e.packs.bp?.description??e.description??``};function Wt(e){return Object.fromEntries(Object.entries(e.replace.values).map(([t,n])=>[t,typeof n==`function`?n(e):n]))}function Gt(e){let t=Wt(e),n=Object.fromEntries(Object.entries(e.replace.builtins).filter(([,e])=>e).map(([t])=>[`**${t}**`,Ut[t](e)])),r={...t,...n};return Object.keys(r).length===0?[]:[f(r,{delimiters:[``,``]})]}function Kt(e){return{values:e?.values??{},builtins:{VERSION:e?.builtins?.VERSION??!1,NAME:e?.builtins?.NAME??!1,UUID:e?.builtins?.UUID??!1,DESCRIPTION:e?.builtins?.DESCRIPTION??!1}}}function qt(e){let t={...e??{}};for(let[e,n]of Object.entries(t))try{Function(`return (${n});`)}catch{throw new L(`CONFIG_INVALID`,`packs.bp.compile.define["${e}"] is not a valid JavaScript expression: ${n}. Define values must be expression strings, e.g. JSON.stringify("server") or "true".`,{details:{defineKey:e,defineValue:n}})}return t}function Jt(e){return Object.keys(e).length>0?{transform:{define:e}}:void 0}const Yt=[Ze,Qe,tt,{name:`exact-version`,match:e=>Le(e.specifier),resolve(e){return e.logger?.verbose(`Using exact ${e.packageName}@${e.specifier}`),{packageVersion:He(e.specifier),manifestVersion:e.specifier}}}];var Xt=class e{resolvers;pluginNames=/* @__PURE__ */ new Map;constructor(e,t=[]){this.resolvers=e;for(let e of t)for(let t of e.install?.dependencyResolvers??[])this.pluginNames.set(t,e.name)}static fromConfig(t,n=[]){return new e([...t,...Yt],n)}resolverMatchesCatalog(e,t){let n=e.entry.resolver;if(!n)return!0;let r=typeof n==`string`?n:n.name;return t.resolver===void 0||t.resolver===r}find(e){let t;for(let n of this.resolvers)if(this.resolverMatchesCatalog(e,n))try{if(n.match(e)){t=n;break}}catch(e){let t=this.pluginNames.get(n);throw t?new L(`PLUGIN_FAILED`,`Plugin ${t} resolver ${n.name} match failed: ${e instanceof Error?e.message:String(e)}`):e}if(!t)throw new L(`DEPENDENCY_VERSION_INVALID`,`${e.packageName} dependency version is invalid: ${e.specifier}`,{details:{package:e.packageName,specifier:e.specifier,resolver:e.entry.resolver}});return e.logger?.verbose(`Resolving ${e.packageName}@${e.specifier} with ${t.name}`),t}async resolve(e){let t=this.find(e);try{return await t.resolve(e)}catch(e){let n=this.pluginNames.get(t);throw n?new L(`PLUGIN_FAILED`,`Plugin ${n} resolver ${t.name} failed: ${e instanceof Error?e.message:String(e)}`):e}}};const Zt=`sapi-pro`,Qt=[`@minecraft/server`,`@minecraft/server-ui`];function $t(e){return/(?:beta|preview|alpha|rc)/i.test(e)}function en(e){return $t(e)?`beta`:`stable`}function tn(e){let t=/^(\d+)\.(\d+)\./.exec(e);return!!t&&(Number(t[1])>0||Number(t[2])>=4)}function nn(e){return{...e.dependencies??{},...e.peerDependencies??{}}}async function rn(e,t,n,r){let i=e.config.packs.bp?.dependencies??{},a={...it,...e.config.install.dependencyCatalog},o=Xt.fromConfig(e.config.install.dependencyResolvers.filter(e=>e!==on),e.config.plugins);for(let[s,c]of Object.entries(t)){if(!s.startsWith(`@minecraft/`))continue;let t=i[s],l=a[s];if(!t||!l)return r.add(s),!1;let u;if(n.has(s)?u=n.get(s):(u=await o.resolve({packageName:s,specifier:t,target:e.target,entry:l,config:e.config,npm:e.npm,...e.logger?{logger:e.logger}:{}}),n.set(s,u)),!u||Qt.includes(s)&&$t(c)!==$t(u.packageVersion)||!Ve(u.packageVersion,c))return!1}return!0}function an(e,t){if(t!==`stable`&&t!==`beta`){let n=e[t];return n?[[t,n]]:[]}return Object.entries(e).filter(([e,n])=>{if(!tn(e))return!1;let r=nn(n);return Object.keys(r).length===0?!1:t===`stable`?/-stable(?:\.\d+)?$/i.test(e):/^\d+\.\d+\.\d+$/.test(e)}).sort(([e],[t])=>z(e,t)).reverse()}const on={name:`sapi-pro`,resolver:`sapi-pro`,match:e=>e.specifier===`stable`||e.specifier===`beta`||/^\d+\.\d+\.\d+(?:-[\w.-]+)?$/.test(e.specifier),async resolve(e){let t=await e.npm.metadata(Zt),n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ new Set;for(let[i,a]of an(t.versions??{},e.specifier))if(await rn(e,nn(a),n,r))return/^0\.3\./.test(i)&&e.logger?.warn(`sapi-pro@${i} uses legacy metadata; compatibility is best-effort only.`),{packageVersion:i,manifestVersion:null};throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot find a compatible ${Zt}@${e.specifier} for target ${e.target}.${r.size>0?` Missing explicit dependencies: ${[...r].join(`, `)}.`:``}`,{details:{package:Zt,specifier:e.specifier,target:e.target},suggestions:[`Explicitly declare the @minecraft packages required by sapi-pro.`,`Use a compatible target or specify an exact sapi-pro version.`]})}};function sn(){return{name:`sapi-pro`,apiVersion:1,description:`Resolve sapi-pro versions compatible with BePack Script API dependencies.`,configResolved:({config:e})=>{let t=e.packs.bp?.dependencies??{},n=t[Zt];if(!n)return;let r=Qt.filter(e=>!t[e]);if(r.length>0)throw Error(`sapi-pro requires explicit dependencies: ${r.join(`, `)}.`);if(n===`stable`||n===`beta`)for(let e of Qt){let r=t[e];if(en(r)!==n)throw Error(`sapi-pro ${n} requires ${e} to use ${n}, received ${r}.`)}},install:{dependencyCatalog:{[Zt]:{resolver:`sapi-pro`,manifest:!1}},dependencyResolvers:[on]}}}const cn={"sapi-pro":sn};function G(e){return e?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):{}}function ln(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e==`function`?`function`:typeof e==`object`?`object`:typeof e==`string`?JSON.stringify(e):String(e)}function un(e,t){let n={};(e.packs?.bp||t.packs?.bp)&&(n.bp={...e.packs?.bp??{},...G(t.packs?.bp)}),(e.packs?.rp||t.packs?.rp)&&(n.rp={...e.packs?.rp??{},...G(t.packs?.rp)});let r={...e.copy?.targets??{},...G(t.copy?.targets)},i=G(t);return{...e,...i,...t.plugins!==void 0||e.plugins!==void 0?{plugins:t.plugins??e.plugins}:{},packs:n,install:{...e.install,...G(t.install)},build:{...e.build,...G(t.build)},dev:{...e.dev,...G(t.dev)},copy:{...e.copy,...G(t.copy),targets:r},pack:{...e.pack,...G(t.pack)},hooks:{...e.hooks,...G(t.hooks)}}}function dn(e){let t=(e??[]).map(e=>{if(typeof e!=`string`)return e;let t=cn[e];if(!t)throw new L(`CONFIG_INVALID`,`Unknown built-in plugin: ${e}.`);return t()}),n=/* @__PURE__ */ new Set;for(let e of t){if(!e?.name||e.name.trim()===``)throw new L(`CONFIG_INVALID`,`Every plugin must have a non-empty name.`);if(n.has(e.name))throw new L(`CONFIG_INVALID`,`Plugin name is duplicated: ${e.name}.`);if(e.apiVersion!==void 0&&e.apiVersion!==1)throw new L(`CONFIG_INVALID`,`Plugin ${e.name} requires unsupported BePack plugin API version ${e.apiVersion}.`);if(e.priority!==void 0&&!Number.isFinite(e.priority))throw new L(`CONFIG_INVALID`,`Plugin ${e.name} priority must be a finite number.`);n.add(e.name)}return t.sort((e,t)=>(t.priority??0)-(e.priority??0))}function fn(e,t){let n=/* @__PURE__ */ new Set;for(let r of[...e.map(e=>e.hooks),t])for(let e of Object.keys(r??{}))n.add(e);return Object.fromEntries([...n].map(n=>{let r=[...e.map(e=>({plugin:e,hook:e.hooks?.[n]})).filter(e=>e.hook!==void 0),...t?.[n]?[{hook:t[n]}]:[]];return[n,async(...e)=>{let t;for(let i of r)try{t=await i.hook(...e)}catch(e){let t=`plugin`in i?i.plugin:void 0;throw t?new L(`PLUGIN_FAILED`,`Plugin ${t.name} ${String(n)} hook failed: ${e instanceof Error?e.message:String(e)}`):e}return t}]}))}function pn(e,t){let n={},r=/* @__PURE__ */ new Map,i=[];for(let t of e)for(let[e,a]of Object.entries(t.install?.dependencyCatalog??{})){let o=r.get(e);if(o){i.push(`dependency catalog ${e}: plugin ${o} takes precedence over plugin ${t.name}`);continue}n[e]=a,r.set(e,t.name)}for(let[e,a]of Object.entries(t)){let t=r.get(e);t&&i.push(`dependency catalog ${e}: project config overrides plugin ${t}`),n[e]=a}return{catalog:n,diagnostics:i}}function mn(e,t,n){let r=Ct,i=e?.scriptOutputDir??r.scriptOutputDir,a=o.resolve(n,e?.entry??r.entry),s=Ft(t,i,o.dirname(a));return{entry:e?.entry??r.entry,define:qt(e?.define),tsconfig:e?.tsconfig??r.tsconfig,typecheck:e?.typecheck??r.typecheck,preserveModules:e?.preserveModules??r.preserveModules,external:e?.external??r.external,useNpx:e?.useNpx??r.useNpx,minify:e?.minify??r.minify,cache:u(e?.cache),scriptOutputDir:s,...e?.rolldown===void 0?{}:{rolldown:c(e.rolldown)},...e?.rolldownConfig===void 0?{}:{rolldownConfig:l(e.rolldownConfig)}};function c(e){if(typeof e==`function`||e&&typeof e==`object`&&!Array.isArray(e))return e;throw new L(`CONFIG_INVALID`,`packs.bp.compile.rolldown must be a rolldown options object or a function (options, context) => options, got: ${ln(e)}.`)}function l(e){if(typeof e!=`string`||e.trim()===``)throw new L(`CONFIG_INVALID`,`packs.bp.compile.rolldownConfig must be a non-empty path string, got: ${ln(e)}.`);return e}function u(e){let t=xt;return{dev:e?.dev??t.dev,build:e?.build??t.build,file:e?.file??t.file}}}function hn(e){if(e===void 0||e===!1)return;let t=e===!0?{}:e;if(typeof t!=`object`||!t||Array.isArray(t))throw new L(`CONFIG_INVALID`,`pack.optimize must be a boolean or an options object, got: ${ln(e)}.`);let n=t.packOptimizationVersion;if(n!==void 0&&(typeof n!=`string`||n.trim()===``))throw new L(`CONFIG_INVALID`,`pack.optimize.packOptimizationVersion must be a non-empty string, got: ${ln(n)}.`);return{keepLooseFiles:t.keepLooseFiles??St.keepLooseFiles,keepLoose:t.keepLoose!==!1&&(t.keepLoose??[]).map(gn),exclude:(t.exclude??[]).map(gn),minifyJson:t.minifyJson??St.minifyJson,packOptimizationVersion:n??St.packOptimizationVersion,allowUnsupportedTarget:t.allowUnsupportedTarget??St.allowUnsupportedTarget}}function gn(e){let t=String(e).replace(/\\/g,`/`).replace(/^\.\//,``).replace(/\/+$/,``);if(!t||t.includes(`/`)||t.includes(`..`)||o.posix.isAbsolute(t))throw new L(`CONFIG_INVALID`,`pack.optimize.exclude entries must be top-level folder names (no path separators, no ".."), got: ${ln(e)}.`);return t}function _n(e){let t=e?.merge??`preserve`;if(t!==`preserve`&&t!==`clean`)throw new L(`CONFIG_INVALID`,`manifest.merge must be "preserve" or "clean", got: ${String(e?.merge)}.`);let n=e?.minEngineVersion;if(n!==void 0&&!/^\d+\.\d+\.\d+$/.test(n))throw new L(`CONFIG_INVALID`,`manifest.minEngineVersion must be a SemVer string like "1.21.0", got: ${n}.`);return{merge:t,...n===void 0?{}:{minEngineVersion:n},extraDependencies:e?.extraDependencies??[],extraModules:e?.extraModules??[],extraHeader:e?.extraHeader??{}}}function vn(e,t={},n=process.cwd()){let r=un(e,t),i=dn(r.plugins),a=r.target??B.target;if(a===`stable`||a===`beta`)throw new L(`TARGET_INVALID`,`target must be a Minecraft game version or latest, not a Script API channel.`,{details:{target:a}});let s=!!r.packs?.bp,c=!!r.packs?.rp;if(!s&&!c)throw new L(`CONFIG_INVALID`,`At least one pack (packs.bp or packs.rp) is required.`);if(!r.name||r.name.trim()===``)throw new L(`CONFIG_INVALID`,`name is required.`);let l=r.name,u=r.version??B.version,d=r.description,f=r.packs,p=f.bp?.compile,m=f.bp,h=f.rp;if(m){if(!m.uuid)throw new L(`CONFIG_INVALID`,`packs.bp.uuid is required.`);if(m.compile&&!m.moduleUuid)throw new L(`CONFIG_INVALID`,`packs.bp.moduleUuid is required when packs.bp.compile is configured.`);if(m.root===void 0)throw new L(`CONFIG_INVALID`,`packs.bp.root is required. Set the behavior pack directory in bepack.config.ts.`);if(p?.define){let e=Object.keys(r.replace?.values??{}),t=Object.keys(p.define),n=e.filter(e=>t.includes(e));if(n.length>0)throw new L(`CONFIG_INVALID`,`Config conflict: ${n.map(e=>`"${e}"`).join(`, `)} is configured in both replace.values and packs.bp.compile.define. Use only one mechanism per key.`,{details:{overlap:n}})}}let g=o.resolve(n,r.root??`.`),_=m?o.resolve(g,m.root):void 0;if(h){if(!h.uuid||!h.moduleUuid)throw new L(`CONFIG_INVALID`,`packs.rp.uuid and packs.rp.moduleUuid are required.`);if(h.root===void 0)throw new L(`CONFIG_INVALID`,`packs.rp.root is required when packs.rp is configured.`);if(h.packScope!==void 0&&!wt.includes(h.packScope))throw new L(`CONFIG_INVALID`,`packs.rp.packScope must be one of ${wt.map(e=>`"${e}"`).join(`, `)}.`,{details:{packScope:h.packScope}})}let v=m?.description??d,y=h?.description??d,{catalog:b,diagnostics:x}=pn(i,r.install?.dependencyCatalog??{}),S=i.flatMap(e=>e.install?.dependencyResolvers??[]),C=hn(r.pack?.optimize),w=hn(r.copy?.optimize);return{root:r.root??B.root,configured:{root:r.root!==void 0,packOutDir:r.pack?.outDir!==void 0},name:l,version:u,...d===void 0?{}:{description:d},replace:Kt(r.replace),target:a,plugins:i,...x.length>0?{pluginDiagnostics:x}:{},...r.manifestFormat===void 0?{}:{manifestFormat:r.manifestFormat},packs:{...m?{bp:{root:m.root,uuid:m.uuid,...m.moduleUuid===void 0?{}:{moduleUuid:m.moduleUuid},name:m.name??l,...v===void 0?{}:{description:v},...p&&_?{compile:mn(p,_,g)}:{},manifest:_n(m.manifest),dependencies:m.dependencies??{},...m.achievement===void 0?{}:{achievement:m.achievement},include:m.include??[]}}:{},...h?{rp:{root:h.root,uuid:h.uuid,moduleUuid:h.moduleUuid,name:h.name??l,...y===void 0?{}:{description:y},manifest:_n(h.manifest),...h.pbr===void 0?{}:{pbr:h.pbr},...h.packScope===void 0?{}:{packScope:h.packScope},include:h.include??[]}}:{}},install:{registry:r.install?.registry??B.install.registry,saveTo:r.install?.saveTo??B.install.saveTo,packageManager:r.install?.packageManager??B.install.packageManager,runPackageManager:r.install?.runPackageManager??B.install.runPackageManager,updatePackageJson:r.install?.updatePackageJson??B.install.updatePackageJson,updateManifest:r.install?.updateManifest??B.install.updateManifest,dependencyCatalog:b,dependencyResolvers:[...S,...r.install?.dependencyResolvers??[]]},build:{copy:r.build?.copy??B.build.copy,timing:r.build?.timing??B.build.timing},dev:{copy:r.dev?.copy??B.dev.copy,...r.dev?.watch?{watch:r.dev.watch}:{}},copy:{defaultTarget:r.copy?.defaultTarget??B.copy.defaultTarget,...r.copy?.name?{name:r.copy.name}:{},...r.copy?.include?{include:r.copy.include}:{},targets:r.copy?.targets??{},...w?{optimize:w}:{}},pack:{name:r.pack?.name??B.pack.name,outDir:r.pack?.outDir??B.pack.outDir,...C?{optimize:C}:{}},hooks:fn(i,r.hooks)}}async function yn(e,n){if(n){let r=Ot(e,n);return await t.access(r).catch(()=>{throw new L(`CONFIG_NOT_FOUND`,`Config not found: ${n}`,{details:{configPath:n}})}),r}for(let n of bt){let r=o.join(e,n);try{return await t.access(r),r}catch{}}throw new L(`CONFIG_NOT_FOUND`,`No bepack.config.ts, bepack.config.mjs, or bepack.config.js found.`,{details:{cwd:e}})}async function bn(e){try{if(e.endsWith(`.ts`))try{return await import(`${a(e).href}?t=${Date.now()}`)}catch{let n=xn(await t.readFile(e,`utf8`));return await import(`data:text/javascript;base64,${Buffer.from(n,`utf8`).toString(`base64`)}`)}return await import(`${a(e).href}?t=${Date.now()}`)}catch(t){throw new L(`CONFIG_INVALID`,`Failed to load config: ${t instanceof Error?t.message:String(t)}`,{details:{file:e},suggestions:[`Use bepack.config.mjs/js for complex config logic.`,`Keep bepack.config.ts free of TypeScript-only runtime syntax.`]})}}function xn(e){return e.replace(/^\s*import\s+type\s+[^;]+;\s*$/gm,``).replace(/\s+satisfies\s+[A-Za-z_$][\w$<>,\s.[\]|&{}]*/g,``).replace(/\((\s*[A-Za-z_$][\w$]*)\s*:\s*[^)=]+?\)\s*=>/g,`($1) =>`)}async function Sn(e,t){for(let n of e.plugins??[])if(n.configResolved)try{await n.configResolved({cwd:t,config:e})}catch(e){throw new L(`PLUGIN_FAILED`,`Plugin ${n.name} configResolved hook failed: ${e instanceof Error?e.message:String(e)}`)}}async function Cn(e){let t=o.resolve(e.cwd),n=await yn(t,e.configPath),r=await bn(n);if(r.default===void 0)throw new L(`CONFIG_INVALID`,`Config must use default export.`,{details:{file:n}});let i=vn(r.default,e.overrides,t);return await Sn(i,t),{config:i,path:n,cwd:t}}function wn(e){return{...it,...e.install.dependencyCatalog}}function Tn(e,t){let n=e[t];if(!n)throw new L(`UNSUPPORTED_DEPENDENCY`,`${t} is not a managed dependency. Add it to install.dependencyCatalog or remove it from packs.bp.dependencies.`,{details:{package:t}});return n}function En(e,t){e?.install?e.install(t):e?.info(`[Install] ${t}`)}var Dn=class{registry;logger;cache=/* @__PURE__ */ new Map;constructor(e,t){this.registry=e,this.logger=t}async metadata(e){let t=this.packageUrl(e),n=this.cache.get(t);if(n)return this.logger?.verbose(`Using cached metadata for ${e}`),n;En(this.logger,`fetching ${e} metadata from ${this.registry}`);let r=await fetch(t);if(!r.ok)throw new L(`SAPI_VERSION_NOT_FOUND`,`Cannot fetch ${e} versions from registry.`,{details:{package:e,registry:this.registry,status:r.status}});let i=await r.json();return this.cache.set(t,i),this.logger?.verbose(`Fetched ${e} metadata (${Object.keys(i.versions??{}).length} versions)`),i}versions(e){return Object.keys(e.versions??{})}async versionsOf(e){return this.versions(await this.metadata(e))}distTag(e,t){let n=e[`dist-tags`]?.[t];return n&&e.versions?.[n]?n:void 0}packageUrl(e){return`${this.registry.replace(/\/$/,``)}/${encodeURIComponent(e).replace(/^%40/,`@`)}`}};function On(e){return t=>{e?.install?e.install(t):e?.info(`[Install] ${t}`)}}var kn=class{config;logger;npm;catalog;pkgResolver;log;constructor(e,t){this.config=e,this.logger=t,this.npm=new Dn(e.install.registry,t),this.catalog=wn(e),this.pkgResolver=new Ge(this.npm,t),this.log=On(t)}async resolveAll(){let e={},t=this.config.packs.bp?.dependencies;if(!t||Object.keys(t).length===0)return this.log(`no BP dependencies to resolve`),e;this.log(`resolving dependencies for target ${this.config.target}`);for(let[n,r]of Object.entries(t)){let t=Tn(this.catalog,n),i=await this.resolveOne(n,r,t),a=t.manifest??!1;e[n]={specifier:r,packageVersion:i.packageVersion,manifestVersion:a?i.manifestVersion??i.packageVersion:null,manifest:a,external:a,resolver:typeof t.resolver==`string`?t.resolver:t.resolver.name},this.log(`${n}: ${r} -> package ${e[n].packageVersion}, manifest ${e[n].manifestVersion}`)}return this.logger?.verbose(`Dependency resolution complete`),e}async resolveOne(e,t,n){let r={packageName:e,specifier:t,target:this.config.target,entry:n,config:this.config};await this.runDependencyHooks(`beforeResolveDependency`,r);let i=await Xt.fromConfig(this.config.install.dependencyResolvers,this.config.plugins??[]).resolve({packageName:e,specifier:t,target:this.config.target,entry:n,config:this.config,npm:this.npm,...this.logger?{logger:this.logger}:{}});return await this.runDependencyHooks(`afterResolveDependency`,{...r,result:i}),i}async runDependencyHooks(e,t){for(let n of this.config.plugins??[]){let r=n.install?.hooks?.[e];if(r)try{await r(t)}catch(t){throw new L(`PLUGIN_FAILED`,`Plugin ${n.name} ${e} hook failed: ${t instanceof Error?t.message:String(t)}`)}}}};async function An(e,t,n,r=!1){let i=o.join(e,`package.json`);if(!await I(i))throw new L(`PACKAGE_JSON_NOT_FOUND`,`package.json not found.`,{details:{cwd:e}});let a=await xe(i),s=t.install.saveTo;a.dependencies=a.dependencies??{},a.devDependencies=a.devDependencies??{};for(let e of Object.keys(n))delete a.dependencies[e],delete a.devDependencies[e];a[s]=a[s]??{};for(let[e,t]of Object.entries(n))a[s][e]=t.packageVersion;return Object.keys(a.dependencies).length||delete a.dependencies,Object.keys(a.devDependencies).length||delete a.devDependencies,r||await Se(i,a),{updated:!0,path:`package.json`}}const jn=[1,21,0],Mn=[1,0,0];var Nn=class{config;version;versionStr;depManager;constructor(e,t){this.config=e,this.version=Ie(e.version),this.versionStr=e.version,this.depManager=t}buildBp(e){let t=this.requireBp(),n=Me(e);this.depManager.validateBpDependencies();let r=this.getWriteFormatVersion(n),i=t.manifest.merge===`clean`?this.buildCleanBp(t,r):this.buildPreserveBp(n,t,r);return this.applyAchievementMetadata(i,t),i}buildRp(e){let t=this.requireRp(),n=Me(e),r=this.getWriteFormatVersion(n),i=t.manifest.merge===`clean`?this.buildCleanRp(t,r):this.buildPreserveRp(n,t,r);return this.applyPbrCapability(i,t),i}buildPreserveBp(e,t,n){return{...e,format_version:n,header:this.buildBpHeader(e,t,n),...t.moduleUuid?{modules:this.replaceManagedBpModules(e.modules,t,n)}:e.modules?{modules:e.modules}:{},dependencies:this.depManager.replaceBpDependencies(e.dependencies,this.config.packs.rp?.uuid,n)}}buildPreserveRp(e,t,n){return{...e,format_version:n,header:this.buildRpHeader(e,t,n),modules:this.replaceManagedRpModules(e.modules,t,n),dependencies:this.depManager.replaceRpDependencies(e.dependencies,this.config.packs.bp?.uuid,n)}}buildCleanBp(e,t){return{format_version:t,header:this.buildBpHeaderClean(e,t),...e.moduleUuid?{modules:this.buildCleanBpModules(e,t)}:{},dependencies:this.depManager.buildBpDependenciesClean(t,this.config.packs.rp?.uuid,e.manifest.extraDependencies)}}buildCleanRp(e,t){return{format_version:t,header:this.buildRpHeaderClean(e,t),modules:this.buildCleanRpModules(e,t),dependencies:this.depManager.buildRpDependenciesClean(t,this.config.packs.bp?.uuid,e.manifest.extraDependencies)}}buildBpHeaderClean(e,t){return{...e.manifest.extraHeader,name:e.name,...e.description===void 0?{}:{description:e.description},uuid:e.uuid,version:this.getVersionFor(t),min_engine_version:e.manifest.minEngineVersion===void 0?this.defaultMinEngineVersion(t):this.configMinEngineVersion(e.manifest.minEngineVersion,t)}}buildRpHeaderClean(e,t){return{...e.manifest.extraHeader,name:e.name,...e.description===void 0?{}:{description:e.description},uuid:e.uuid,...e.packScope===void 0?{}:{pack_scope:e.packScope},version:this.getVersionFor(t),min_engine_version:e.manifest.minEngineVersion===void 0?this.defaultMinEngineVersion(t):this.configMinEngineVersion(e.manifest.minEngineVersion,t)}}buildCleanBpModules(e,t){return[...e.moduleUuid?[this.createScriptModule(e,t)]:[],...e.manifest.extraModules]}buildCleanRpModules(e,t){return[this.createResourcesModule(e,t),...e.manifest.extraModules]}buildBpHeader(e,t,n){return{...e.header??{},name:t.name,...t.description===void 0?{}:{description:t.description},uuid:t.uuid,version:this.getVersionFor(n),min_engine_version:this.normalizeMinEngineVersion(e.header?.min_engine_version,n,t.manifest.minEngineVersion)}}buildRpHeader(e,t,n){return{...e.header??{},name:t.name,...t.description===void 0?{}:{description:t.description},uuid:t.uuid,...t.packScope===void 0?{}:{pack_scope:t.packScope},version:this.getVersionFor(n),min_engine_version:this.normalizeMinEngineVersion(e.header?.min_engine_version,n,t.manifest.minEngineVersion)}}getScriptEntry(){let e=this.config.packs.bp?.compile;return e?`${e.scriptOutputDir}/${o.basename(e.entry,o.extname(e.entry))}.js`:`scripts/main.js`}isManagedBpModule(e,t){if(e.type!==`script`||e.language!==`javascript`)return!1;let n=this.getScriptEntry();return e.uuid===t.moduleUuid||e.entry===n}isManagedRpModule(e,t){return e.type===`resources`&&e.uuid===t.moduleUuid}createScriptModule(e,t){return{type:`script`,language:`javascript`,uuid:e.moduleUuid,version:this.getModuleVersion(t),entry:this.getScriptEntry()}}createResourcesModule(e,t){return{type:`resources`,uuid:e.moduleUuid,version:this.getModuleVersion(t)}}replaceManagedBpModules(e,t,n){return[...Ne(e).filter(e=>!this.isManagedBpModule(e,t)),this.createScriptModule(t,n)]}replaceManagedRpModules(e,t,n){return[...Ne(e).filter(e=>!this.isManagedRpModule(e,t)),this.createResourcesModule(t,n)]}applyAchievementMetadata(e,t){if(t.achievement===!0)e.metadata={...e.metadata??{},product_type:`addon`};else if(t.achievement===!1&&e.metadata){let t={...e.metadata};delete t.product_type;let n=Pe(t);n?e.metadata=n:delete e.metadata}}applyPbrCapability(e,t){if(t.pbr===!0){let t=Ne(e.capabilities);e.capabilities=t.includes(`pbr`)?t:[...t,`pbr`]}else if(t.pbr===!1){let t=Ne(e.capabilities).filter(e=>e!==`pbr`);t.length>0?e.capabilities=t:delete e.capabilities}}getVersionFor(e){return e===3?this.versionStr:this.version}getModuleVersion(e){return e===3?`1.0.0`:Mn}getWriteFormatVersion(e){return this.config.manifestFormat===void 0?e.format_version??2:this.config.manifestFormat}normalizeMinEngineVersion(e,t,n){if(n!==void 0)return this.configMinEngineVersion(n,t);if(e==null)return this.defaultMinEngineVersion(t);if(Array.isArray(e))return t===3?e.join(`.`):e;if(typeof e==`string`){if(t===2){let t=this.stringToVersionTuple(e);if(t)return t}return e}return this.defaultMinEngineVersion(t)}configMinEngineVersion(e,t){return t===3?e:this.stringToVersionTuple(e)??this.defaultMinEngineVersion(t)}defaultMinEngineVersion(e){return e===3?`1.21.0`:jn}stringToVersionTuple(e){let t=e.split(`.`).map(Number);if(t.length===3&&t.every(e=>!Number.isNaN(e)))return t}requireBp(){if(!this.config.packs.bp)throw new L(`CONFIG_INVALID`,`packs.bp is required to build the BP manifest.`);return this.config.packs.bp}requireRp(){if(!this.config.packs.rp)throw new L(`CONFIG_INVALID`,`packs.rp is required to build the RP manifest.`);return this.config.packs.rp}},Pn=class e{config;catalog;installVersions;manifestVersions;version;versionStr;dependencyDiagnostics=[];constructor(e,t,n={}){this.config=e,this.catalog=t,this.installVersions=n.install??{},this.manifestVersions=n.manifest??{},this.version=Ie(e.version),this.versionStr=e.version}static isAllowedSpecifier(e){return e===`stable`||e===`beta`||e===`preview`||/^\d+\.\d+\.\d+(?:[-.][0-9A-Za-z.-]+)?$/.test(e)}static resolveVersion(t){return e.resolveVersionDetail(t).version}static resolveVersionDetail(e){let{specifier:t,target:n,resolvedVersion:r,manifestVersion:i}=e;if(t===`stable`){if(r)return{version:r,source:`install`};if(i)return{version:i,source:`manifest`};throw new L(`DEPENDENCY_REQUIRES_INSTALL`,"Run `bepack install` to resolve stable manifest dependencies.",{details:{specifier:t,target:n}})}if(t===`beta`){if(Re(n))return{version:`beta`,source:`config`};if(r)return{version:r,source:`install`};if(i)return{version:i,source:`manifest`};throw new L(`DEPENDENCY_REQUIRES_INSTALL`,`Run \`bepack install\` to resolve manifest dependencies for target ${n}.`,{details:{target:n}})}if(t===`preview`){if(r)return{version:r,source:`install`};if(i)return{version:i,source:`manifest`};throw new L(`DEPENDENCY_REQUIRES_INSTALL`,`Run \`bepack install\` to resolve preview manifest dependencies for target ${n}.`,{details:{specifier:t,target:n}})}return{version:t,source:`config`}}static isAchievementCompatible(e){return e!==`beta`&&e!==`preview`}validateBpDependencies(){if(this.config.packs.bp){for(let[t,n]of Object.entries(this.config.packs.bp.dependencies)){if(!this.catalog[t]){let e=Object.keys(this.catalog),n=e.length>0?[`Managed packages: ${e.join(`, `)}.`,`Add a missing package to install.dependencyCatalog, or remove it from packs.bp.dependencies.`]:[`No managed packages are available. Extend install.dependencyCatalog to add one.`];throw new L(`UNSUPPORTED_DEPENDENCY`,`${t} is not a managed dependency.`,{details:{package:t},suggestions:n})}if(!e.isAllowedSpecifier(n))throw new L(`DEPENDENCY_VERSION_INVALID`,`${t} dependency version is invalid: ${n}`,{details:{package:t,specifier:n}})}if(this.config.packs.bp.achievement){for(let[t,n]of Object.entries(this.config.packs.bp.dependencies))if(!e.isAchievementCompatible(n))throw new L(`ACHIEVEMENT_REQUIRES_STABLE_API`,`${t}: achievement requires stable Script API dependencies (${n} is not allowed).`)}}}isManagedBpDependency(e){return!!(`module_name`in e&&typeof e.module_name==`string`&&this.catalog[e.module_name]?.manifest||`uuid`in e&&typeof e.uuid==`string`&&this.config.packs.rp?.uuid===e.uuid)}isManagedRpDependency(e,t){return t!==void 0&&`uuid`in e&&typeof e.uuid==`string`&&e.uuid===t}buildManagedDependencies(){if(this.dependencyDiagnostics.length=0,!this.config.packs.bp)return[];let t=[];for(let[n,r]of Object.entries(this.config.packs.bp.dependencies)){if(!this.catalog[n]?.manifest)continue;let i=e.resolveVersionDetail({specifier:r,target:this.config.target,resolvedVersion:this.installVersions[n],manifestVersion:this.manifestVersions[n]});t.push({module_name:n,version:i.version}),this.dependencyDiagnostics.push({name:n,specifier:r,version:i.version,source:i.source})}return t}getDependencyDiagnostics(){return this.dependencyDiagnostics}getFormatAwareVersion(e){return(e??this.config.manifestFormat??2)===3?this.versionStr:this.version}replaceBpDependencies(e,t,n){let r=Ne(e).filter(e=>!this.isManagedBpDependency(e)),i=this.buildManagedDependencies();return t&&i.push({uuid:t,version:this.getFormatAwareVersion(n)}),[...r,...i]}replaceRpDependencies(e,t,n){let r=Ne(e).filter(e=>!this.isManagedRpDependency(e,t));return t?[...r,{uuid:t,version:this.getFormatAwareVersion(n)}]:r}buildBpDependenciesClean(e,t,n){let r=this.buildManagedDependencies();return t&&r.push({uuid:t,version:this.getFormatAwareVersion(e)}),[...r,...n]}buildRpDependenciesClean(e,t,n){let r=[];return t&&r.push({uuid:t,version:this.getFormatAwareVersion(e)}),[...r,...n]}};const Fn=we.default.createColors(process.env.NO_COLOR===void 0&&process.env.FORCE_COLOR!==`0`);async function In(e){let t=wn(e.config),n=e.config.packs.bp?Rt(e.cwd,e.config):void 0,r=n?await Fe.read(n):void 0,i=Rn(r,t),a=new Pn(e.config,t,{...e.resolvedDeps?{install:e.resolvedDeps}:{},manifest:i}),s=new Nn(e.config,a),c={};if(e.config.packs.bp){let t=r!==void 0;e.config.manifestFormat===2&&r?.format_version===3&&(e.logger?.warn??console.warn)(`Warning: config manifestFormat is 2, but existing manifest uses format_version 3. format_version 2 does not support string versions; any string versions in the existing manifest will be preserved as-is.`);let l=s.buildBp(r),u=a.getDependencyDiagnostics().map(e=>({module_name:e.name,specifier:e.specifier,version:e.version,source:e.source,...i[e.name]===void 0?{}:{previous:i[e.name]}}));e.dryRun||await Fe.write(n,l,`bp`),Ln(u,e.logger),c.bpManifest={path:V(o.relative(e.cwd,n)),updated:!0,existed:t,dependencies:u}}if(e.config.packs.rp){let t=zt(e.cwd,e.config),n=await Fe.read(t),r=n!==void 0,i=s.buildRp(n);e.dryRun||await Fe.write(t,i,`rp`),c.rpManifest={path:V(o.relative(e.cwd,t)),updated:!0,existed:r}}return c}function Ln(e,t){if(t)for(let n of e){let e=Fn.cyan(n.module_name);n.previous!==void 0&&n.previous!==n.version?t.info(`manifest ${e}: ${n.previous} ${Fn.dim(`->`)} ${n.version} (specifier ${JSON.stringify(n.specifier)}, ${n.source})`):n.source===`manifest`?t.info(`manifest ${e} ${n.version} ${Fn.dim(`kept from manifest`)} (specifier ${JSON.stringify(n.specifier)}) — run \`bepack install\` to refresh`):t.verbose(`manifest ${e} ${n.version} (specifier ${JSON.stringify(n.specifier)}, ${n.source})`)}}function Rn(e,t){let n={};for(let r of e?.dependencies??[])`module_name`in r&&typeof r.module_name==`string`&&typeof r.version==`string`&&t[r.module_name]?.manifest&&r.version!==`stable`&&(n[r.module_name]=r.version);return n}function zn(e){if(e==null||e===``)return`hook ran`;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function Bn(e,t){let n={dist:Bt(e,t)};if(t.packs.bp&&(n.bpRoot=kt(e,t),n.bpManifest=Rt(e,t),jt(t))){let r=W(e,t);r&&(n.srcEntry=r);let i=Nt(e,t);i&&(n.scriptOutFile=i);let a=Mt(e,t);a&&(n.scriptOutDir=a)}return t.packs.rp&&(n.rpRoot=At(e,t),n.rpManifest=zt(e,t)),n}async function K(e,t,n,r,i,a={}){let o=r.hooks[e];if(o)try{let s=await o({command:t,cwd:n,...a.mode===void 0?{}:{mode:a.mode},target:r.target,dryRun:!!a.dryRun,config:r,paths:Bn(n,r),logger:i});i.hook(String(e),zn(s))}catch(t){throw new L(`HOOK_FAILED`,`${String(e)} hook failed: ${t instanceof Error?t.message:String(t)}`)}}async function Vn(e){let{command:t,logger:n,mode:r,...i}=e,a={...r===void 0?{}:{mode:r},dryRun:!!i.dryRun};await K(`beforeManifest`,t,i.cwd,i.config,n,a);let o=await In({...i,logger:n});return await K(`afterManifest`,t,i.cwd,i.config,n,a),o}function Hn(e){let t=[],n={};for(let[r,i]of Object.entries(e)){if(r.toLowerCase()===`npm_config_allow_scripts`){t.push(r);continue}n[r]=i}return{env:n,removed:t}}var Un=class{cwd;registry;logger;constructor(e,t,n){this.cwd=e,this.registry=t,this.logger=n}async detect(e){if(e!==`auto`)return e;let t=o.join(this.cwd,`package.json`);if(await I(t)){let e=(await xe(t)).packageManager?.split(`@`)[0];if(e===`npm`||e===`pnpm`||e===`yarn`||e===`bun`)return e}return await I(o.join(this.cwd,`pnpm-lock.yaml`))?`pnpm`:await I(o.join(this.cwd,`yarn.lock`))?`yarn`:await I(o.join(this.cwd,`bun.lock`))||await I(o.join(this.cwd,`bun.lockb`))?`bun`:`npm`}async install(e){let{command:t,args:n}=this.commandForPlatform(e,this.installArgs(e)),{env:r,removed:i}=Hn(process.env);return i.length>0&&this.logger?.warn(`Ignoring inherited ${i.join(`, `)}: npm rejects --allow-scripts for project-scoped installs. Declare allowed packages in package.json "allowScripts" or in .npmrc instead.`),await new Promise((i,a)=>{let o;try{o=m(t,n,{cwd:this.cwd,stdio:`inherit`,env:r})}catch(t){a(new L(`PACKAGE_MANAGER_NOT_FOUND`,`${e} is not available.`,{details:{manager:e,cause:t instanceof Error?t.message:String(t)}}));return}o.on(`error`,t=>a(new L(`PACKAGE_MANAGER_NOT_FOUND`,`${e} is not available.`,{details:{manager:e,cause:t.message}}))),o.on(`exit`,t=>{t&&t!==0?a(new L(`PACKAGE_MANAGER_FAILED`,`${e} install failed.`,{details:{manager:e,registry:this.registry,exitCode:t}})):i(t??0)})})}commandForPlatform(e,t){return process.platform===`win32`?{command:process.env.ComSpec??`cmd.exe`,args:[`/d`,`/s`,`/c`,e,...t]}:{command:e,args:t}}installArgs(e){let t=[`install`];return this.registry&&(e===`npm`||e===`pnpm`||e===`bun`||e===`yarn`)&&t.push(`--registry`,this.registry),t}};async function Wn(e){let t=new Te({...e,silent:e.silent||e.json}),n={target:e.target};(e.registry||e.pm||e.saveTo||e.skipPm||e.skipManifest||e.skipPackageJson)&&(n.install={...e.registry?{registry:e.registry}:{},...e.pm?{packageManager:e.pm}:{},...e.saveTo?{saveTo:e.saveTo}:{},...e.skipPm?{runPackageManager:!1}:{},...e.skipManifest?{updateManifest:!1}:{},...e.skipPackageJson?{updatePackageJson:!1}:{}});let{cwd:r,config:i}=await Cn({cwd:e.cwd??process.cwd(),configPath:e.config,overrides:n});await K(`beforeInstall`,`install`,r,i,t,{dryRun:!!e.dryRun});let a=await new kn(i,t).resolveAll(),o=Object.fromEntries(Object.entries(a).filter(([,e])=>e.manifestVersion!==null).map(([e,t])=>[e,t.manifestVersion])),s={};i.install.updatePackageJson&&(s.packageJson=await An(r,i,a,e.dryRun)),i.install.updateManifest&&Object.assign(s,await Vn({cwd:r,config:i,command:`install`,dryRun:e.dryRun,logger:t,resolvedDeps:o}));let c=new Un(r,i.install.registry,t),l=await c.detect(i.install.packageManager),u={ran:!1,manager:l,exitCode:null};return!e.dryRun&&i.install.runPackageManager&&(t.progress(`Install`,`running ${l} install with registry ${i.install.registry}`),u={ran:!0,manager:l,exitCode:await c.install(l)}),await K(`afterInstall`,`install`,r,i,t,{dryRun:!!e.dryRun}),t.success(`Install`,`done`),{ok:!0,command:`install`,target:i.target,packageManager:l,resolved:a,files:s,packageInstall:u}}async function Gn(e){let t=new Te({...e,silent:e.silent||e.json}),{cwd:n,config:r}=await Cn({cwd:e.cwd??process.cwd(),configPath:e.config,overrides:{target:e.target}}),i=await Vn({cwd:n,config:r,command:`manifest`,dryRun:e.dryRun,logger:t});return t.success(`Manifest`,e.dryRun?`dry-run complete`:`updated manifest.json`),{ok:!0,command:`manifest`,target:r.target,files:i}}function Kn(e,t,n,r){let i=e?`npx tsc --noEmit`:`tsc --noEmit`;return i+=` --project "${t}"`,n&&r&&(i+=` --incremental --tsBuildInfoFile "${r}"`),i}async function qn(e,t={}){let n=t.tsconfigPath??`tsconfig.json`,r=o.resolve(e,n);if(!await I(r))throw new L(`TYPECHECK_FAILED`,`TypeScript config not found: ${n}. Create it or run build with --skip-typecheck.`,{details:{path:n}});t.incremental&&t.tsBuildInfoFile&&await g(o.dirname(t.tsBuildInfoFile),{recursive:!0});let i=Kn(!!t.useNpx,r,!!t.incremental,t.tsBuildInfoFile);await new Promise((n,r)=>{let a=``,o=``,s;try{s=p(i,{cwd:e,windowsHide:!0,maxBuffer:10485760},e=>{if(!e){n();return}let s=[a.trim(),o.trim()].filter(Boolean).join(`
10
+ `),c=s.includes(`not recognized`)||s.includes(`not found`)||s.includes(`ENOENT`)||s.includes(`不是内部或外部命令`),l=c?t.useNpx?[`Install npm/npx or set packs.bp.compile.entry to skip typecheck.`]:["Install TypeScript globally so `tsc` is available.",`Set packs.bp.compile.useNpx: true to use the project local TypeScript.`]:void 0;r(new L(`TYPECHECK_FAILED`,c?`Cannot find ${t.useNpx?`npx`:`tsc`}.`:`${i} failed.`,{details:{command:i,exitCode:typeof e.code==`number`?e.code:null,...s?{diagnostics:s}:{}},...l?{suggestions:l}:{}}))})}catch(e){r(new L(`TYPECHECK_FAILED`,`Cannot start ${i}.`,{details:{command:i,cause:e instanceof Error?e.message:String(e)},suggestions:t.useNpx?[`Install npm/npx or set build.useNpx to false.`]:["Install TypeScript globally so `tsc` is available.",`Set build.useNpx: true to use the project local TypeScript.`]}));return}s.on(`error`,e=>{r(new L(`TYPECHECK_FAILED`,`Cannot start ${i}.`,{details:{command:i,cause:e.message},suggestions:t.useNpx?[`Install npm/npx or set build.useNpx to false.`]:["Install TypeScript globally so `tsc` is available.",`Set build.useNpx: true to use the project local TypeScript.`]}))}),s.stdout?.on(`data`,e=>{a+=String(e),t.quiet||process.stdout.write(e)}),s.stderr?.on(`data`,e=>{o+=String(e),t.quiet||process.stderr.write(e)})})}const Jn=/* @__PURE__ */ new Set([`plugins`]),Yn=/* @__PURE__ */ new Set([`external`]),Xn=/* @__PURE__ */ new Set([`output`,`resolve`,`transform`,`experimental`,`checks`,`optimization`,`watch`,`moduleTypes`]),Zn=[{key:`file`,suggestion:`The output file is derived from packs.bp.compile.entry and scriptOutputDir.`},{key:`dir`,suggestion:`The output directory is derived from packs.bp.compile.scriptOutputDir.`},{key:`format`,suggestion:`Minecraft Script API modules must be ESM, so BePack always writes format: "esm".`},{key:`preserveModules`,suggestion:`Use packs.bp.compile.preserveModules instead.`},{key:`preserveModulesRoot`,suggestion:`The modules root is always the entry file directory.`},{key:`entryFileNames`,suggestion:"Manifest script entries assume one `.js` file per source module."}];function q(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Qn(e){return e==null||e===!1?[]:Array.isArray(e)?e:[e]}function $n(e,t){return process.platform===`win32`?e.toLowerCase()===t.toLowerCase():e===t}function er(e,t,n){return typeof e!=`string`||typeof t!=`string`?!1:$n(o.resolve(n,e),o.resolve(n,t))}function tr(e){if(e instanceof Error){let t=e.cause;return t instanceof Error&&t.message?t.message:e.message}return String(e)}function nr(e,t){if(typeof e==`function`||typeof t==`function`)return t;let n=[],r=/* @__PURE__ */ new Set,i=/* @__PURE__ */ new Set;for(let a of[...Qn(e),...Qn(t)])if(typeof a==`string`){if(r.has(a))continue;r.add(a),n.push(a)}else if(a instanceof RegExp){let e=`${a.source}/${a.flags}`;if(i.has(e))continue;i.add(e),n.push(a)}return n}function rr(e,t){if(!q(t))return t;let n=q(e)?e:{},r={...n,...t},i=q(n.define)?n.define:{};return q(t.define)&&(r.define={...i,...t.define}),r}function ir(e,t){if(!t)return{...e};let n={...e};for(let[e,r]of Object.entries(t)){if(r===void 0)continue;let t=n[e];n[e]=Jn.has(e)?[...Qn(t),...Qn(r)]:Yn.has(e)?nr(t,r):e===`transform`?rr(t,r):Xn.has(e)&&q(t)&&q(r)?{...t,...r}:r}return n}function ar(e){if(!e.packs.bp?.compile)return[];let t=[...e.packs.bp.compile.external],n=new Set(t.filter(e=>typeof e==`string`));for(let[r,i]of Object.entries(wn(e)))i.manifest&&!n.has(r)&&(t.push(r),n.add(r));return t}function or(e){let t=e.packs.bp?.compile;if(!t)throw new L(`BUILD_FAILED`,`rolldown requires packs.bp.compile to be configured.`);return t}function sr(e,t){let n=or(t),r=W(e,t);if(!r)throw new L(`BUILD_FAILED`,`packs.bp.compile.entry could not be resolved.`);return{input:r,external:ar(t),plugins:Gt(t),...Jt(n.define)??{},onwarn(e,t){e.code!==`CIRCULAR_DEPENDENCY`&&t(e)},experimental:{attachDebugInfo:n.preserveModules?`none`:`simple`}}}function cr(e,t){let n=or(t),r=W(e,t),i=Mt(e,t),a=Nt(e,t);if(!r||!i||!a)throw new L(`BUILD_FAILED`,`rolldown requires a valid compile entry and output directory.`);return n.preserveModules?{dir:i,format:`esm`,preserveModules:!0,preserveModulesRoot:o.dirname(r),entryFileNames:`[name].js`,minify:n.minify}:{file:a,format:`esm`,minify:n.minify}}function lr(e,t){if(typeof e==`string`)return[o.resolve(t,e)];if(Array.isArray(e))return e.every(e=>typeof e==`string`)?e.map(e=>o.resolve(t,e)).sort():void 0;if(q(e)){let n=Object.values(e);return n.every(e=>typeof e==`string`)?n.map(e=>o.resolve(t,e)).sort():void 0}}function ur(e,t,n){if(e.input===void 0)return;let r=lr(e.input,n),i=lr(t.input,n);if(!(r!==void 0&&i!==void 0&&r.length===i.length&&r.every((e,t)=>$n(e,i[t]))))throw new L(`CONFIG_INVALID`,`packs.bp.compile.rolldown cannot override "input" — the bundle entry is managed by BePack.`,{details:{input:e.input,expected:t.input},suggestions:[`Set the entry file via packs.bp.compile.entry instead.`]})}function dr(e,t,n){for(let{key:r,suggestion:i}of Zn){let a=e[r];if(a===void 0)continue;let o=t[r];if(!(r===`file`||r===`dir`||r===`preserveModulesRoot`?er(a,o,n):Object.is(a,o)||r===`preserveModules`&&o===void 0&&a===!1))throw new L(`CONFIG_INVALID`,`packs.bp.compile.rolldown cannot override "output.${r}" — it is managed by BePack.`,{details:{key:r,value:a,expected:o},suggestions:[i]})}}function fr(e,t){if(q(e)&&e.__esModule===!0&&`default`in e)return fr(e.default,t);if(typeof e==`function`)return e;if(Array.isArray(e)){if(e.length===0)throw new L(`CONFIG_INVALID`,`rolldown config file exports an empty array: ${t}`,{details:{file:t},suggestions:[`Export a single rolldown options object.`]});if(e.length>1)throw new L(`CONFIG_INVALID`,`rolldown config file exports ${e.length} configs, but BePack builds a single behavior pack per run: ${t}`,{details:{file:t,count:e.length},suggestions:[`Export a single rolldown options object.`]});if(!q(e[0]))throw new L(`CONFIG_INVALID`,`rolldown config file must export an options object or function: ${t}`);return e[0]}if(q(e))return e;throw new L(`CONFIG_INVALID`,`rolldown config file must default-export a rolldown options object, a function, or a single-element array: ${t}`)}async function pr(e){if(!await I(e))throw new L(`CONFIG_INVALID`,`rolldown config file not found: ${e}`,{details:{path:e},suggestions:[`Check the path in packs.bp.compile.rolldownConfig or --rolldown-config.`]});let t;try{t=await v(e)}catch(t){throw new L(`CONFIG_INVALID`,`Failed to load rolldown config file "${e}": ${tr(t)}`)}return fr(t,e)}async function mr(e,t,n){let r;try{r=await e(t,n)}catch(e){throw new L(`BUILD_FAILED`,`compile.rolldown customization function failed: ${tr(e)}`)}if(r==null)return t;if(!q(r))throw new L(`CONFIG_INVALID`,`compile.rolldown customization function must return a rolldown options object (or nothing).`);return ir(t,r)}async function hr(e){let{cwd:t,config:n}=e,r=or(n),i=H(t,n),a=W(t,n),s=Mt(t,n),c=Nt(t,n);if(!a||!s||!c)throw new L(`BUILD_FAILED`,`rolldown requires a valid compile entry and output directory.`);let l=sr(t,n),u=cr(t,n),d={command:e.command??`build`,...e.mode===void 0?{}:{mode:e.mode},target:n.target,entry:a,outDir:s,outFile:c,preserveModules:r.preserveModules},f=r.rolldown,p=e.configPath??r.rolldownConfig,m=p?await pr(o.resolve(i,p)):void 0,h=ir(l,typeof f==`function`?void 0:f);h=ir(h,typeof m==`function`?void 0:m),typeof f==`function`&&(h=await mr(f,h,d)),typeof m==`function`&&(h=await mr(m,h,d));let{output:g,input:_,...v}=h;if(Array.isArray(g))throw new L(`CONFIG_INVALID`,"packs.bp.compile.rolldown cannot declare multiple outputs (an `output` array) — BePack writes exactly one output.",{suggestions:["Declare a single `output` object."]});if(g!==void 0&&!q(g))throw new L(`CONFIG_INVALID`,"packs.bp.compile.rolldown `output` must be an object.",{details:{output:g}});ur({input:_},l,i);let y=ir(u,g);return dr(y,u,i),{inputOptions:{...v,input:l.input},outputOptions:y}}function gr(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(2)} MB`}function _r(t,n){let r=o.resolve(t),i=o.resolve(n),a=o.relative(r,i);if(!a||a.startsWith(`..`)||o.isAbsolute(a))return;try{if(e(r).isSymbolicLink())throw new L(`BUILD_FAILED`,`Safety check failed: BP root is a symbolic link or junction: "${r}". Refusing to recursively delete through a symbolic link.`)}catch(e){if(e instanceof L)throw e;if(e?.code===`ENOENT`)return;throw e}let s=r;for(let t of a.split(o.sep)){s=o.join(s,t);try{if(e(s).isSymbolicLink())throw new L(`BUILD_FAILED`,`Safety check failed: script output path contains a symbolic link: "${s}". Refusing to recursively delete through a symbolic link.`)}catch(e){if(e.code===`ENOENT`)break;throw e}}}function vr(e,t,n){let r=o.resolve(e),i=o.resolve(t);if(Pt(r,i)||Pt(i,r))throw new L(`BUILD_FAILED`,`Safety check failed: script output directory "${e}" overlaps ${n} "${t}". Refusing to empty this directory.`)}function yr(e,t,n,r){let i=H(e,t),a=kt(e,t),s=o.join(a,`manifest.json`),c=[o.join(i,`.git`),o.join(a,`.git`)];for(let e of c)vr(r,e,`.git metadata`);if(t.packs.rp){let e=U(i,t,`rp`);o.resolve(e)!==o.resolve(a)&&vr(r,e,`RP root`)}vr(r,s,`BP manifest`);let l=o.dirname(n),u=o.relative(a,l);It(r,a,`script output directory`,u&&!u.startsWith(`..`)&&!o.isAbsolute(u)?[l]:[]),_r(a,r)}async function br(e,t,n,r={}){if(!jt(t))throw new L(`BUILD_FAILED`,`rolldown requires packs.bp.compile to be configured.`);let i=W(e,t),a=Mt(e,t),o=Nt(e,t);if(!i||!a||!o)throw new L(`BUILD_FAILED`,`rolldown requires a valid compile entry and output directory.`);try{let{inputOptions:o,outputOptions:s}=await hr({cwd:e,config:t,...r.command===void 0?{}:{command:r.command},...r.mode===void 0?{}:{mode:r.mode},...r.rolldownConfig===void 0?{}:{configPath:r.rolldownConfig}});yr(e,t,i,a),await be(a);let c=await _(o);try{await c.write(s)}finally{await c.close()}await xr(a,n)}catch(e){throw e instanceof L?e:new L(`BUILD_FAILED`,`rolldown failed: ${e instanceof Error?e.message:String(e)}`)}}async function xr(e,t){let n=[];async function r(t){let i=await h.readdir(t,{withFileTypes:!0});for(let a of i){let i=o.join(t,a.name);if(a.isDirectory())await r(i);else if(a.isFile()&&a.name.endsWith(`.js`)){let t=await h.stat(i);n.push({path:o.relative(e,i),size:t.size})}}}if(await r(e),n.length===0)return;n.sort((e,t)=>t.size-e.size);let i=n.reduce((e,t)=>e+t.size,0);t?.rolldown(n.length===1?`${n[0].path} (${gr(n[0].size)})`:`${n.length} files, total ${gr(i)}`)}async function Sr(e,t,n,r){let i=r?Date.now():0,a=await t();return r&&n.timing(e,Date.now()-i),a}async function Cr(e){let t=Date.now(),n=e.config.build.timing,r=H(e.cwd,e.config),i=jt(e.config),a=e.command??`build`,s={...e.mode===void 0?{}:{mode:e.mode},dryRun:!!e.dryRun};await Sr(`manifest`,()=>Vn({cwd:e.cwd,config:e.config,command:a,logger:e.logger,dryRun:!!e.dryRun,...e.mode===void 0?{}:{mode:e.mode},...e.resolvedDeps?{resolvedDeps:e.resolvedDeps}:{}}),e.logger,n);let c=[];e.config.packs.bp&&c.push(`bp`),e.config.packs.rp&&c.push(`rp`),e.logger.manifest(`manifest.json updated (${c.join(`, `)})`),await K(`beforeBuild`,a,e.cwd,e.config,e.logger,s);let l=!1;if(i&&!e.dryRun&&e.typecheck!==!1){let t=e.config.packs.bp.compile,i=e.cache?o.resolve(r,t.cache.file):void 0;await Sr(`typecheck`,()=>qn(r,{quiet:!!e.quiet,useNpx:t.useNpx,tsconfigPath:t.tsconfig,incremental:!!e.cache,...i?{tsBuildInfoFile:i}:{}}),e.logger,n),l=!0,e.logger.typescript(`typecheck complete`)}i&&!e.dryRun&&(await Sr(`rolldown`,()=>br(e.cwd,e.config,e.logger,{...e.command===void 0?{}:{command:e.command},...e.mode===void 0?{}:{mode:e.mode},...e.rolldownConfig===void 0?{}:{rolldownConfig:e.rolldownConfig}}),e.logger,n),e.logger.rolldown(e.config.packs.bp.compile.preserveModules?`preserve modules build complete`:`bundle complete`)),await K(`afterBuild`,a,e.cwd,e.config,e.logger,s);let u=Date.now()-t;return{script:i?V(Nt(e.cwd,e.config)):void 0,compiled:i,typecheck:l,durationMs:u}}async function wr(e,n=``){let r={},i=await t.readdir(e,{withFileTypes:!0});for(let a of i){let i=o.join(e,a.name),s=n?`${n}/${a.name}`:a.name;a.isDirectory()?Object.assign(r,await wr(i,s)):r[s]=new Uint8Array(await t.readFile(i))}return r}async function Tr(e,n){let r={};for(let i of n){let n=o.join(e,i);try{(await t.stat(n)).isDirectory()?Object.assign(r,await wr(n,i)):r[i]=new Uint8Array(await t.readFile(n))}catch{}}return r}async function Er(e,t){return t?await t(e):e}function Dr(e,t){let n={};for(let[r,i]of Object.entries(e))n[`${t}/${r}`]=i;return n}function Or(e){let t={};for(let n of Object.keys(e).sort())t[n]=e[n];return t}async function kr(e,n){await t.rm(e,{recursive:!0,force:!0}),await t.mkdir(e,{recursive:!0});for(let[r,i]of Object.entries(n)){let n=o.join(e,r);await t.mkdir(o.dirname(n),{recursive:!0}),await t.writeFile(n,i)}}var Ar=D((()=>{}));Ar();const jr=new TextEncoder;new TextDecoder;function Mr(e){let t=16+e.length*256,n=0,r=[];for(let t of e){let e=jr.encode(t.name);if(e.length===0)throw new L(`PACK_FAILED`,`brarchive entry names must not be empty.`);if(e.length>247)throw new L(`PACK_FAILED`,`brarchive entry name is too long (max 247 bytes): ${t.name}`,{details:{name:t.name,bytes:e.length}});r.push(e),n+=t.data.length}let i=new Uint8Array(t+n),a=new DataView(i.buffer);a.setBigUint64(0,9018218223661903910n,!1),a.setUint32(8,e.length,!0),a.setUint32(12,1,!0);let o=0;return e.forEach((e,n)=>{let s=16+n*256,c=r[n];a.setUint8(s,c.length),i.set(c,s+1),a.setUint32(s+248,o,!0),a.setUint32(s+252,e.data.length,!0),i.set(e.data,t+o),o+=e.data.length}),i}const Nr=[`functions`,`loot_tables`,`structures`,`texts`],Pr=[`font`,`materials`,`sounds`,`texts`,`textures`],Fr=[1,26,40],Ir=Fr.join(`.`),Lr=new TextEncoder,Rr=new TextDecoder,zr=new TextDecoder(`utf-16le`),Br=new TextDecoder(`utf-16be`);function Vr(e){if(e.length>=2){if(e[0]===255&&e[1]===254)return zr.decode(e.subarray(2));if(e[0]===254&&e[1]===255)return Br.decode(e.subarray(2))}return Rr.decode(e)}function Hr(e){return e.length>=2&&(e[0]===255&&e[1]===254||e[0]===254&&e[1]===255)}function Ur(e){return e.startsWith(``)?e.slice(1):e}function Wr(e){if(e&&typeof e==`object`&&!Array.isArray(e))return e}function Gr(e){if(typeof e==`string`){let t=e.split(`.`).map(e=>Number.parseInt(e,10));return t.length>=3&&t.slice(0,3).every(e=>Number.isInteger(e))?[t[0],t[1],t[2]]:void 0}if(Array.isArray(e)&&e.length>=3){let t=e.slice(0,3);if(t.every(e=>typeof e==`number`&&Number.isInteger(e)))return t}}function Kr(e,t){for(let n=0;n<3;n++){let r=(e[n]??0)-(t[n]??0);if(r!==0)return r}return 0}function qr(e){if(e)try{return Wr(JSON.parse(Ur(Vr(e))))}catch{return}}function Jr(e){return Gr(Wr(e?.header)?.min_engine_version)}function Yr(e){let t=e?.modules;return Array.isArray(t)?t.some(e=>Wr(e)?.type===`resources`):!1}function Xr(e,t,n){if(t.allowUnsupportedTarget)return;let r=Jr(e);if(r&&Kr(r,Fr)>=0)return;let i=r?r.join(`.`):`(not declared)`;n?.warn(`pack optimization: header.min_engine_version is ${i}, below ${Ir}. The archives still load on 1.26.40+, but older clients cannot read __brarchive/ and will show missing content. Set allowUnsupportedTarget: true to silence this warning.`)}function Zr(e,t,n){if(!e.toLowerCase().endsWith(`.json`))return t;try{let e=JSON.parse(Ur(Vr(t)));return Lr.encode(JSON.stringify(e))}catch(r){let i=r instanceof Error?r.message:String(r),a=Hr(t)?` (UTF-16)`:``;return n?.warn(`pack optimization: could not minify ${e}${a}, storing it unchanged. ${i}. Fix the JSON to have it minified.`),t}}function Qr(e,t){if(!e)throw new L(`PACK_FAILED`,`Pack optimization needs a manifest.json to write header.pack_optimization_version into.`);let n;try{let t=Wr(JSON.parse(Ur(Vr(e))));if(!t)throw Error(`manifest is not an object`);n=t}catch{throw new L(`PACK_FAILED`,`Cannot write header.pack_optimization_version: the pack's manifest.json is not valid JSON.`)}let r={...Wr(n.header)??{}};return r.pack_optimization_version=t,n.header=r,Lr.encode(JSON.stringify(n))}function $r(e,t,n,r){let i=e[`manifest.json`]??r,a=qr(i);Xr(a,t,n);let o=new Set(t.exclude),s=t.keepLoose===!1?/* @__PURE__ */ new Set:/* @__PURE__ */ new Set([...Yr(a)?Pr:Nr,...t.keepLoose]),c=/* @__PURE__ */ new Map,l={},u={},d=0,f=0;for(let r of Object.keys(e).sort()){let i=e[r],a=r.split(`/`),p=a[0];if(a.length<2||p===`__brarchive`||o.has(p)){l[r]=i;continue}let m=a.slice(0,-1).join(`/`),h=a[a.length-1],g=c.get(m)??[],_=t.keepLooseFiles||s.has(p);s.has(p)&&!t.keepLooseFiles?(g.push({name:h,data:/* @__PURE__ */ new Uint8Array}),u[r]=i,f++):(g.push({name:h,data:t.minifyJson?Zr(h,i,n):i}),d++,_&&(u[r]=i)),c.set(m,g)}let p={...l,...u};for(let e of[...c.keys()].sort())p[`__brarchive/${e}.brarchive`]=Mr(c.get(e));p[`manifest.json`]=Qr(i,t.packOptimizationVersion);let m=Object.keys(u).length,h=f>0?`, ${f} name-stub${f===1?``:`s`}`:``;return n?.pack(`optimized into ${c.size} archive${c.size===1?``:`s`} (${d} file${d===1?``:`s`} archived${h}, ${m} kept loose)`),Or(p)}function ei(e,t,n){return r=>$r(r,e,t,n)}const ti={win:()=>({type:`gameRoot`,path:o.join(`C:/Users`,u.userInfo().username,`AppData/Roaming/Minecraft Bedrock/Users/Shared/games/com.mojang`)}),winold:()=>{let e=process.env.LOCALAPPDATA;if(!e)throw new L(`COPY_TARGET_NOT_FOUND`,`%LOCALAPPDATA% is required for winold copy target.`);return{type:`gameRoot`,path:o.join(e,`Packages`,`Microsoft.MinecraftUWP_8wekyb3d8bbwe`,`LocalState`,`games`,`com.mojang`)}}};function ni(e,t){return{type:`custom`,bp:o.join(t.path,`development_behavior_packs`),...e.packs.rp?{rp:o.join(t.path,`development_resource_packs`)}:{}}}function ri(e,t){let n=t??e.copy.defaultTarget;if(!n)throw new L(`COPY_TARGET_NOT_FOUND`,`No copy target configured. Set copy.defaultTarget or copy.targets in bepack.config.ts, or pass --target.`,{suggestions:[`Add copy.defaultTarget to your config file.`,`Or set build.copy / dev.copy to a target name instead of true.`,`Built-in targets: win, winold.`]});let r=e.copy.targets[n]??ti[n]?.();if(!r)throw new L(`COPY_TARGET_NOT_FOUND`,`Copy target not found: ${n}`,{details:{target:n}});let i=e.copy.targets[n]?.name,a=e.copy.name,o=e=>typeof e==`string`?{bp:e,rp:e}:e??{},s=o(i),c=o(a),l={},u=s.bp??c.bp,d=s.rp??c.rp;return u&&(l.bp=u),d&&(l.rp=d),r.type===`gameRoot`?{name:n,target:ni(e,r),names:l}:{name:n,target:r,names:l}}const ii=/* @__PURE__ */ new Set([`node_modules`,`package.json`,`package-lock.json`,`pnpm-lock.yaml`,`yarn.lock`,`bun.lock`,`bun.lockb`,`tsconfig.json`,...bt]);function ai(e,t,n){let r=U(H(e,t),t,n);if(!r)return[];let i=W(e,t),a=[Bt(e,t),i?o.dirname(i):void 0],s=[];for(let e of a){if(!e)continue;let t=o.relative(r,e);if(!t||t.startsWith(`..`)||o.isAbsolute(t))continue;let n=t.split(o.sep)[0];n&&s.push(n)}return s}async function oi(e,n,r=[]){let i;try{i=await t.readdir(e,{withFileTypes:!0})}catch{return[]}let a=new Set(n);return i.map(e=>e.name).filter(e=>!a.has(e)).filter(e=>!e.startsWith(`.`)&&!ii.has(e)).filter(e=>!r.includes(e)).sort((e,t)=>e.localeCompare(t))}function si(e){return e===`bp`?`packs.bp.include`:`packs.rp.include`}async function ci(e){let{logger:t,packType:n,root:r,items:i,action:a}=e;if(!t)return;let o=await oi(r,i,e.ignore??[]);if(o.length===0)return;let s=e.limit??8,c=o.slice(0,s).join(`, `),l=o.length>s?`, +${o.length-s} more`:``,u=n===`bp`?`behavior pack`:`resource pack`;t.warn(`${u} ${a} only includes ${i.length} configured item(s); ${o.length} entr${o.length===1?`y`:`ies`} in "${li(r,e.cwd)}" ${o.length===1?`is`:`are`} skipped: ${c}${l}. Add them to ${si(n)} to include them.`)}function li(e,t){if(!t)return e;let n=o.relative(t,e).replace(/\\/g,`/`);return n&&!n.startsWith(`..`)&&!o.isAbsolute(n)?n:e}Ar();const ui=we.default.createColors(process.env.NO_COLOR===void 0&&process.env.FORCE_COLOR!==`0`);async function di(e,n,r){await t.rm(n,{recursive:!0,force:!0}),await t.mkdir(n,{recursive:!0});for(let i of r){let r=o.join(e,i),a=o.join(n,i);try{await t.cp(r,a,{recursive:!0})}catch(e){if(e.code!==`ENOENT`)throw e}}}function fi(e,t){let n=o.resolve(e),r=o.resolve(t);if(Pt(n,r)||Pt(r,n))throw new L(`COPY_FAILED`,`Copy target "${t}" overlaps source pack "${e}". Refusing to copy.`,{details:{source:n,target:r}})}function pi(e,t){let n=o.resolve(e),r=o.resolve(n,t);if(r===n||!Pt(n,r))throw new L(`COPY_FAILED`,`Copy folder name "${t}" must resolve to a directory inside "${e}".`,{details:{targetDir:n,folderName:t,destination:r}});return r}async function mi(e,t){if(!await I(e))throw new L(`COPY_FAILED`,`Copy target directory does not exist: ${e}`,{details:{dir:e,label:t},suggestions:[`Create the target directory: mkdir -p "${e}"`,`Or check the copy target path in bepack.config.ts.`]})}function hi(e,t){if(t===`bp`)return Lt(e);let n=e.packs.rp?.include??[],r=e.copy.include?.rp??[],i=n.length>0?n:r;return i.length>0?[...Dt,...i]:[]}async function gi(e){try{return new Uint8Array(await t.readFile(o.join(e,`manifest.json`)))}catch{return}}async function _i(e,t,n,r,i,a,o,s,c){let l=hi(i,e),u=pi(n,r);fi(t,u);let d=e===`bp`||l.length>0;d&&await ci({...s?{logger:s}:{},packType:e,root:t,items:l,action:`copy`,cwd:o,ignore:ai(o,i,e)});let f=c===void 0?i.copy.optimize:c?i.copy.optimize??St:void 0;if(!a){if(f){let e=d?await Tr(t,l):await wr(t),n=ei(f,s,await gi(t));try{await kr(u,await Er(e,n))}catch(e){throw e instanceof L?new L(e.code===`PACK_FAILED`?`COPY_FAILED`:e.code,e.message,{...e.details===void 0?{}:{details:e.details},...e.suggestions===void 0?{}:{suggestions:e.suggestions}}):e}}else d?await di(t,u,l):await Ce(t,u)}let p=l.length>0?l.length:void 0;return s?.copy(`${a?`would copy`:`copied`} ${e}${p?` (${p} items)`:``} -> ${ui.gray(u)}`),u}async function vi(e,t,n,r=!1,i,a={}){let{name:o,target:s,names:c}=ri(t,n),l=[],u=H(e,t),d=Tt(t);for(let n of d){let o;if(o=n.type===`bp`?s.bp:s.rp,!o)continue;await mi(o,n.type);let d=c[n.type]??n.name,f=U(u,t,n.type),p=await _i(n.type,f,o,d,t,r,e,i,a.optimize);l.push(p)}return{target:o,copied:l}}async function yi(e){let{command:t,cwd:n,config:r,logger:i,targetName:a,mode:o,optimize:s}=e,c=!!e.dryRun,l={...o===void 0?{}:{mode:o},dryRun:c};await K(`beforeCopy`,t,n,r,i,l);let u=await vi(n,r,a,c,i,s===void 0?{}:{optimize:s});return await K(`afterCopy`,t,n,r,i,l),u}function bi(e,t){return ra(e,t||{},0,0)}function xi(e,t){if(t){for(var n=new J(e.length),r=0;r<e.length;++r)n[r]=e.charCodeAt(r);return n}if(oa)return oa.encode(e);for(var i=e.length,a=new J(e.length+(e.length>>1)),o=0,s=function(e){a[o++]=e},r=0;r<i;++r){if(o+5>a.length){var c=new J(o+8+(i-r<<1));c.set(a),a=c}var l=e.charCodeAt(r);l<128||t?s(l):l<2048?(s(192|l>>6),s(128|l&63)):l>55295&&l<57344?(l=65536+(l&1047552)|e.charCodeAt(++r)&1023,s(240|l>>18),s(128|l>>12&63),s(128|l>>6&63),s(128|l&63)):(s(224|l>>12),s(128|l>>6&63),s(128|l&63))}return Hi(a,0,o)}function Si(e,t){t||={};var n={},r=[];aa(e,``,n,t);var i=0,a=0;for(var o in n){var s=n[o],c=s[0],l=s[1],u=l.level==0?0:8,d=xi(o),f=d.length,p=l.comment,m=p&&xi(p),h=m&&m.length,g=ca(l.extra);f>65535&&Wi(11);var _=u?bi(c,l):c,v=_.length,y=na();y.p(c),r.push(ia(l,{size:c.length,crc:y.d(),c:_,f:d,m,u:f!=o.length||m&&p.length!=h,o:i,compression:u})),i+=30+f+g+v,a+=76+2*(f+g)+(h||0)+v}for(var b=new J(a+22),x=i,S=a-i,C=0;C<r.length;++C){var d=r[C];la(b,d.o,d,d.f,d.u,d.c.length);var w=30+d.f.length+ca(d.extra);b.set(d.c,d.o+w),la(b,i,d,d.f,d.u,d.c.length,d.o,d.m),i+=16+w+(d.m?d.m.length:0)}return ua(b,i,r.length,S,x),b}var Ci,wi,J,Y,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni,Pi,X,Fi,Ii,Li,Ri,zi,Bi,Vi,Hi,Ui,Wi,Z,Gi,Ki,qi,Ji,Yi,Xi,Zi,Qi,$i,ea,ta,na,ra,ia,Q,aa,oa,sa,ca,la,ua,da=D((()=>{Ci=y(`/`);try{wi=Ci("worker_threads"),wi.Worker,wi.isMarkedAsUntransferable}catch{}for(J=Uint8Array,Y=Uint16Array,Ti=Int32Array,Ei=new J([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Di=new J([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Oi=new J([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ki=function(e,t){for(var n=new Y(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];for(var i=new Ti(n[30]),r=1;r<30;++r)for(var a=n[r];a<n[r+1];++a)i[a]=a-n[r]<<5|r;return{b:n,r:i}},wi=ki(Ei,2),Ai=wi.b,ji=wi.r,Ai[28]=258,ji[258]=28,Mi=ki(Di,0),Mi.b,Ni=Mi.r,Pi=new Y(32768),X=0;X<32768;++X)Fi=(X&43690)>>1|(X&21845)<<1,Fi=(Fi&52428)>>2|(Fi&13107)<<2,Fi=(Fi&61680)>>4|(Fi&3855)<<4,Pi[X]=((Fi&65280)>>8|(Fi&255)<<8)>>1;for(Ii=(function(e,t,n){for(var r=e.length,i=0,a=new Y(t);i<r;++i)e[i]&&++a[e[i]-1];var o=new Y(t);for(i=1;i<t;++i)o[i]=o[i-1]+a[i-1]<<1;var s;if(n){s=new Y(1<<t);var c=15-t;for(i=0;i<r;++i)if(e[i])for(var l=i<<4|e[i],u=t-e[i],d=o[e[i]-1]++<<u,f=d|(1<<u)-1;d<=f;++d)s[Pi[d]>>c]=l}else for(s=new Y(r),i=0;i<r;++i)e[i]&&(s[i]=Pi[o[e[i]-1]++]>>15-e[i]);return s}),Li=new J(288),X=0;X<144;++X)Li[X]=8;for(X=144;X<256;++X)Li[X]=9;for(X=256;X<280;++X)Li[X]=7;for(X=280;X<288;++X)Li[X]=8;for(Ri=new J(32),X=0;X<32;++X)Ri[X]=5;zi=/*#__PURE__*/ Ii(Li,9,0),Bi=/*#__PURE__*/ Ii(Ri,5,0),Vi=function(e){return(e+7)/8|0},Hi=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new J(e.subarray(t,n))},Ui=[`unexpected EOF`,`invalid block type`,`invalid length/literal`,`invalid distance`,`stream finished`,`no stream handler`,,`no callback`,`invalid UTF-8 data`,`extra field too long`,`date not in range 1980-2099`,`filename too long`,`stream finishing`,`invalid zip data`],Wi=function(e,t,n){var r=Error(t||Ui[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,Wi),!n)throw r;return r},Z=function(e,t,n){n<<=t&7;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8},Gi=function(e,t,n){n<<=t&7;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8,e[r+2]|=n>>16},Ki=function(e,t){for(var n=[],r=0;r<e.length;++r)e[r]&&n.push({s:r,f:e[r]});var i=n.length,a=n.slice();if(!i)return{t:$i,l:0};if(i==1){var o=new J(n[0].s+1);return o[n[0].s]=1,{t:o,l:1}}n.sort(function(e,t){return e.f-t.f}),n.push({s:-1,f:25001});var s=n[0],c=n[1],l=0,u=1,d=2;for(n[0]={s:-1,f:s.f+c.f,l:s,r:c};u!=i-1;)s=n[n[l].f<n[d].f?l++:d++],c=n[l!=u&&n[l].f<n[d].f?l++:d++],n[u++]={s:-1,f:s.f+c.f,l:s,r:c};for(var f=a[0].s,r=1;r<i;++r)a[r].s>f&&(f=a[r].s);var p=new Y(f+1),m=qi(n[u-1],p,0);if(m>t){var r=0,h=0,g=m-t,_=1<<g;for(a.sort(function(e,t){return p[t.s]-p[e.s]||e.f-t.f});r<i;++r){var v=a[r].s;if(p[v]>t)h+=_-(1<<m-p[v]),p[v]=t;else break}for(h>>=g;h>0;){var y=a[r].s;p[y]<t?h-=1<<t-p[y]++-1:++r}for(;r>=0&&h;--r){var b=a[r].s;p[b]==t&&(--p[b],++h)}m=t}return{t:new J(p),l:m}},qi=function(e,t,n){return e.s==-1?Math.max(qi(e.l,t,n+1),qi(e.r,t,n+1)):t[e.s]=n},Ji=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new Y(++t),r=0,i=e[0],a=1,o=function(e){n[r++]=e},s=1;s<=t;++s)if(e[s]==i&&s!=t)++a;else{if(!i&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(i),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(i);a=1,i=e[s]}return{c:n.subarray(0,r),n:t}},Yi=function(e,t){for(var n=0,r=0;r<t.length;++r)n+=e[r]*t[r];return n},Xi=function(e,t,n){var r=n.length,i=Vi(t+2);e[i]=r&255,e[i+1]=r>>8,e[i+2]=e[i]^255,e[i+3]=e[i+1]^255;for(var a=0;a<r;++a)e[i+a+4]=n[a];return(i+4+r)*8},Zi=function(e,t,n,r,i,a,o,s,c,l,u){Z(t,u++,n),++i[256];for(var d=Ki(i,15),f=d.t,p=d.l,m=Ki(a,15),h=m.t,g=m.l,_=Ji(f),v=_.c,y=_.n,b=Ji(h),x=b.c,S=b.n,C=new Y(19),w=0;w<v.length;++w)++C[v[w]&31];for(var w=0;w<x.length;++w)++C[x[w]&31];for(var T=Ki(C,7),E=T.t,D=T.l,O=19;O>4&&!E[Oi[O-1]];--O);var ee=l+5<<3,k=Yi(i,Li)+Yi(a,Ri)+o,A=Yi(i,f)+Yi(a,h)+o+14+3*O+Yi(C,E)+2*C[16]+3*C[17]+7*C[18];if(c>=0&&ee<=k&&ee<=A)return Xi(t,u,e.subarray(c,c+l));var j,M,N,te;if(Z(t,u,1+(A<k)),u+=2,A<k){j=Ii(f,p,0),M=f,N=Ii(h,g,0),te=h;var ne=Ii(E,D,0);Z(t,u,y-257),Z(t,u+5,S-1),Z(t,u+10,O-4),u+=14;for(var w=0;w<O;++w)Z(t,u+3*w,E[Oi[w]]);u+=3*O;for(var P=[v,x],re=0;re<2;++re)for(var ie=P[re],w=0;w<ie.length;++w){var ae=ie[w]&31;Z(t,u,ne[ae]),u+=E[ae],ae>15&&(Z(t,u,ie[w]>>5&127),u+=ie[w]>>12)}}else j=zi,M=Li,N=Bi,te=Ri;for(var w=0;w<s;++w){var F=r[w];if(F>255){var ae=F>>18&31;Gi(t,u,j[ae+257]),u+=M[ae+257],ae>7&&(Z(t,u,F>>23&31),u+=Ei[ae]);var oe=F&31;Gi(t,u,N[oe]),u+=te[oe],oe>3&&(Gi(t,u,F>>5&8191),u+=Di[oe])}else Gi(t,u,j[F]),u+=M[F]}return Gi(t,u,j[256]),u+M[256]},Qi=/*#__PURE__*/ new Ti([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),$i=/*#__PURE__*/ new J(0),ea=function(e,t,n,r,i,a){var o=a.z||e.length,s=new J(r+o+5*(1+Math.ceil(o/7e3))+i),c=s.subarray(r,s.length-i),l=a.l,u=(a.r||0)&7;if(t){u&&(c[0]=a.r>>3);for(var d=Qi[t-1],f=d>>13,p=d&8191,m=(1<<n)-1,h=a.p||new Y(32768),g=a.h||new Y(m+1),_=Math.ceil(n/3),v=2*_,y=function(t){return(e[t]^e[t+1]<<_^e[t+2]<<v)&m},b=new Ti(25e3),x=new Y(288),S=new Y(32),C=0,w=0,T=a.i||0,E=0,D=a.w||0,O=0;T+2<o;++T){var ee=y(T),k=T&32767,A=g[ee];if(h[k]=A,g[ee]=k,D<=T){var j=o-T;if((C>7e3||E>24576)&&(j>423||!l)){u=Zi(e,c,0,b,x,S,w,E,O,T-O,u),E=C=w=0,O=T;for(var M=0;M<286;++M)x[M]=0;for(var M=0;M<30;++M)S[M]=0}var N=2,te=0,ne=p,P=k-A&32767;if(j>2&&ee==y(T-P))for(var re=Math.min(f,j)-1,ie=Math.min(32767,T),ae=Math.min(258,j);P<=ie&&--ne&&k!=A;){if(e[T+N]==e[T+N-P]){for(var F=0;F<ae&&e[T+F]==e[T+F-P];++F);if(F>N){if(N=F,te=P,F>re)break;for(var oe=Math.min(P,F-2),se=0,M=0;M<oe;++M){var ce=T-P+M&32767,le=ce-h[ce]&32767;le>se&&(se=le,A=ce)}}}k=A,A=h[k],P+=k-A&32767}if(te){b[E++]=268435456|ji[N]<<18|Ni[te];var ue=ji[N]&31,de=Ni[te]&31;w+=Ei[ue]+Di[de],++x[257+ue],++S[de],D=T+N,++C}else b[E++]=e[T],++x[e[T]]}}for(T=Math.max(T,D);T<o;++T)b[E++]=e[T],++x[e[T]];u=Zi(e,c,l,b,x,S,w,E,O,T-O,u),l||(a.r=u&7|c[u/8|0]<<3,u-=7,a.h=g,a.p=h,a.i=T,a.w=D)}else{for(var T=a.w||0;T<o+l;T+=65535){var fe=T+65535;fe>=o&&(c[u/8|0]=l,fe=o),u=Xi(c,u+1,e.subarray(T,fe))}a.i=o}return Hi(s,0,r+Vi(u)+i)},ta=/*#__PURE__*/ (function(){for(var e=/* @__PURE__ */ new Int32Array(256),t=0;t<256;++t){for(var n=t,r=9;--r;)n=(n&1&&-306674912)^n>>>1;e[t]=n}return e})(),na=function(){var e=-1;return{p:function(t){for(var n=e,r=0;r<t.length;++r)n=ta[n&255^t[r]]^n>>>8;e=n},d:function(){return~e}}},ra=function(e,t,n,r,i){if(!i&&(i={l:1},t.dictionary)){var a=t.dictionary.subarray(-32768),o=new J(a.length+e.length);o.set(a),o.set(e,a.length),e=o,i.w=a.length}return ea(e,t.level==null?6:t.level,t.mem==null?i.l?Math.ceil(Math.max(8,Math.min(13,Math.log(e.length)))*1.5):20:12+t.mem,n,r,i)},ia=function(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n},Q=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8},aa=function(e,t,n,r){for(var i in e){var a=e[i],o=t+i,s=r;Array.isArray(a)&&(s=ia(r,a[1]),a=a[0]),ArrayBuffer.isView(a)?n[o]=[a,s]:(n[o+=`/`]=[new J(0),s],aa(a,o,n,r))}},oa=typeof TextEncoder<`u`&&/*#__PURE__*/ new TextEncoder,sa=typeof TextDecoder<`u`&&/*#__PURE__*/ new TextDecoder;try{sa.decode($i,{stream:!0})}catch{}ca=function(e){var t=0;if(e)for(var n in e){var r=e[n].length;r>65535&&Wi(9),t+=r+4}return t},la=function(e,t,n,r,i,a,o,s){var c=r.length,l=n.extra,u=s&&s.length,d=ca(l);Q(e,t,o==null?67324752:33639248),t+=4,o!=null&&(e[t++]=20,e[t++]=n.os),e[t]=20,t+=2,e[t++]=n.flag<<1|(a<0&&8),e[t++]=i&&8,e[t++]=n.compression&255,e[t++]=n.compression>>8;var f=new Date(n.mtime==null?Date.now():n.mtime),p=f.getFullYear()-1980;if((p<0||p>119)&&Wi(10),Q(e,t,p<<25|f.getMonth()+1<<21|f.getDate()<<16|f.getHours()<<11|f.getMinutes()<<5|f.getSeconds()>>1),t+=4,a!=-1&&(Q(e,t,n.crc),Q(e,t+4,a<0?-a-2:a),Q(e,t+8,n.size)),Q(e,t+12,c),Q(e,t+14,d),t+=16,o!=null&&(Q(e,t,u),Q(e,t+6,n.attrs),Q(e,t+10,o),t+=14),e.set(r,t),t+=c,d)for(var m in l){var h=l[m],g=h.length;Q(e,t,+m),Q(e,t+2,g),e.set(h,t+4),t+=4+g}return u&&(e.set(s,t),t+=u),t},ua=function(e,t,n,r,i){Q(e,t,101010256),Q(e,t+8,n),Q(e,t+10,n),Q(e,t+12,r),Q(e,t+16,i)}}));async function fa(e,n){await t.mkdir(o.dirname(n),{recursive:!0}),await t.writeFile(n,Si(Or(e)))}async function pa(e,t,n){await fa(await Er(await wr(e),n),t)}async function ma(e,t,n,r){await fa(await Er(await Tr(e,t),r),n)}async function ha(e,t){let n={};for(let t of e){let e=await Er(await Tr(t.source,t.items),t.transform);Object.assign(n,Dr(e,o.basename(o.resolve(t.source))))}await fa(n,t)}async function ga(e,t,n){let r={};for(let t of e){let e=await Er(await Tr(t.source,t.items),t.transform);Object.assign(r,Dr(e,o.basename(o.resolve(t.source))))}for(let e of t){let t=await Er(await wr(e.dir),e.transform);Object.assign(r,Dr(t,o.basename(o.resolve(e.dir))))}await fa(r,n)}var _a=D((()=>{da(),Ar()})),va=/* @__PURE__ */ ee({packMcpack:()=>ya});async function ya(e,t,n,r=!1,i){let a=o.join(t,`${n}.mcpack`);return r||await pa(e,a,i),a}var ba=D((()=>{_a()}));_a();function xa(e,t,n){let r=o.resolve(e),i=o.resolve(t),a=o.relative(i,r);if(a&&!a.startsWith(`..`)&&!o.isAbsolute(a))throw new L(`PACK_FAILED`,`pack output must not be inside ${n} directory.`,{details:{output:r,dir:i},suggestions:[`Set pack.outDir to a path outside ${n}: ${i}`]})}function Sa(e,t,n){let r=o.resolve(e),i=o.resolve(t);for(let e of n){let t=o.resolve(i,e),n=o.relative(t,r);if(n===``||!n.startsWith(`..${o.sep}`)&&n!==`..`&&!o.isAbsolute(n))throw new L(`PACK_FAILED`,`pack output must not be included in the BP archive.`,{details:{output:r,includedPath:t},suggestions:[`Set pack.outDir outside the selected BP include path: ${t}`]})}}function Ca(e,t){let n=o.relative(o.resolve(t),o.resolve(e));if(n.startsWith(`..`)||o.isAbsolute(n))throw new L(`PACK_FAILED`,`pack output name must stay inside pack.outDir.`,{details:{output:o.resolve(e),dist:o.resolve(t)}})}function wa(e,t){if(t===`bp`)return{items:Lt(e),selective:!0};let n=e.packs.rp?.include??[],r=e.copy.include?.rp??[],i=n.length>0?n:r;return i.length>0?{items:[...Dt,...i],selective:!0}:{items:[],selective:!1}}async function Ta(e,t,n={}){let r=H(e,t),i=(n.name??t.pack.name).replaceAll(`{name}`,t.name).replaceAll(`{version}`,t.version),a=Bt(e,t);if(Tt(t).length===0)throw new L(`PACK_FAILED`,`No packs configured. At least one pack is required.`);let s=n.optimize===void 0?t.pack.optimize:n.optimize?t.pack.optimize??St:void 0,c=s?ei(s,n.logger):void 0,l=t.packs.bp?{root:U(r,t,`bp`),config:t}:void 0,u=t.packs.rp?{root:U(r,t,`rp`),config:t}:void 0,d=l?wa(t,`bp`):void 0;if(l&&d?.selective&&await ci({...n.logger?{logger:n.logger}:{},packType:`bp`,root:l.root,items:d.items,action:`pack`,cwd:e,ignore:ai(e,t,`bp`)}),u){let r=wa(t,`rp`);r.selective&&await ci({...n.logger?{logger:n.logger}:{},packType:`rp`,root:u.root,items:r.items,action:`pack`,cwd:e,ignore:ai(e,t,`rp`)})}if(l&&u){if(!d)throw new L(`PACK_FAILED`,`BP pack configuration is missing.`);let e=o.join(a,`${i}.mcaddon`);if(Ca(e,a),d?.selective&&Sa(e,l.root,d.items),xa(e,u.root,`RP`),!n.dryRun){let n=wa(t,`rp`);n.selective?await ha([{source:l.root,items:d.items,...c?{transform:c}:{}},{source:u.root,items:n.items,...c?{transform:c}:{}}],e):await ga([{source:l.root,items:d.items,...c?{transform:c}:{}}],[{dir:u.root,...c?{transform:c}:{}}],e)}return e}if(l){if(!d)throw new L(`PACK_FAILED`,`BP pack configuration is missing.`);let e=o.join(a,`${i}.mcpack`);return Ca(e,a),d?.selective&&Sa(e,l.root,d.items),n.dryRun||await ma(l.root,d.items,e,c),e}if(u){let e=o.join(a,`${i}.mcpack`);if(Ca(e,a),xa(e,u.root,`RP`),!n.dryRun){let r=wa(t,`rp`);if(r.selective)await ma(u.root,r.items,e,c);else{let{packMcpack:e}=await Promise.resolve().then(()=>(ba(),va));return await e(u.root,a,i,n.dryRun,c)}}return e}throw new L(`PACK_FAILED`,`No packs configured.`)}async function Ea(e,t,n,r={}){let i=Date.now();await K(`beforePack`,`pack`,e,t,n,{dryRun:!!r.dryRun});let a=await Ta(e,t,{...r,logger:n});await K(`afterPack`,`pack`,e,t,n,{dryRun:!!r.dryRun});let o=Date.now()-i;return n.done(`pack`,r.dryRun?`dry-run: would pack ${a} (no file written)`:`packed ${a} in ${n.formatDuration(o)}`),{output:a,durationMs:o,dryRun:!!r.dryRun}}async function Da(e){let t=new Te({...e,silent:e.silent||e.json}),{cwd:n,config:r}=await Cn({cwd:e.cwd??process.cwd(),configPath:e.config}),i=e.build===!1||!!e.skipBuild,a=null;if(!i){let i=e.skipTypecheck?!1:e.typecheck?!0:r.packs.bp?.compile?.typecheck,o=e.cache===void 0?r.packs.bp?.compile?.cache.build??!1:!!e.cache;a=await Cr({cwd:n,config:r,logger:t,command:`build`,...i===void 0?{}:{typecheck:i},...e.cache===void 0?{}:{cache:o},dryRun:!!e.dryRun,quiet:!!(e.json||e.silent),...e.rolldownConfig?{rolldownConfig:e.rolldownConfig}:{}})}let{output:o,durationMs:s}=await Ea(n,r,t,{name:e.name,dryRun:e.dryRun,...e.optimize===void 0?{}:{optimize:!!e.optimize}});return{ok:!0,command:`pack`,durationMs:s,output:o,built:!i,build:a}}function Oa(e){for(let t of[[`copy`,`skipCopy`],[`pack`,`skipPack`],[`typecheck`,`skipTypecheck`],[`install`,`skipInstall`]]){let[n,r]=t;if(e[n]&&e[r])throw new L(`CLI_ARGUMENT_CONFLICT`,`--${n} and --${r} cannot be used together.`)}}async function ka(e){Oa(e);let t=new Te({...e,silent:e.silent||e.json}),{cwd:n,config:r}=await Cn({cwd:e.cwd??process.cwd(),configPath:e.config,overrides:{target:e.target,...e.timing===void 0?{}:{build:{timing:e.timing}}}});t.bepack(`build`,`target ${r.target}`);let i;if(e.install){let t=await Wn({...e,cwd:n,config:void 0,silent:e.silent||e.json});i=Object.fromEntries(Object.entries(t.resolved).filter(([,e])=>e.manifestVersion!==null).map(([e,t])=>[e,t.manifestVersion]))}let a=r.packs.bp?.compile,o=e.skipTypecheck?!1:e.typecheck?!0:a?.typecheck??!1,s=e.cache===void 0?a?.cache.build??!1:e.cache,c=await Cr({cwd:n,config:r,logger:t,mode:e.mode,command:`build`,...e.rolldownConfig?{rolldownConfig:e.rolldownConfig}:{},typecheck:!!o,cache:!!s,dryRun:!!e.dryRun,quiet:!!(e.json||e.silent),...i?{resolvedDeps:i}:{}}),l=null,u=e.skipCopy?!1:e.copy||e.copyTarget?!0:r.build.copy;u&&(l=await yi({command:`build`,cwd:n,config:r,logger:t,...e.mode===void 0?{}:{mode:e.mode},targetName:e.copyTarget??(typeof u==`string`?u:void 0),dryRun:!!e.dryRun,...e.optimize===void 0?{}:{optimize:!!e.optimize}}));let d=null;return!e.skipPack&&e.pack&&(d=await Ea(n,r,t,{name:e.name,dryRun:e.dryRun,...e.optimize===void 0?{}:{optimize:!!e.optimize}})),t.done(`build`,`complete in ${t.formatDuration(c.durationMs)}`),{ok:!0,command:`build`,durationMs:c.durationMs,build:c,copy:l,pack:d}}async function Aa(e){let t=Date.now(),n=new Te({...e,silent:e.silent||e.json}),{cwd:r,config:i}=await Cn({cwd:e.cwd??process.cwd(),configPath:e.config});await K(`beforeCopy`,`copy`,r,i,n,{dryRun:!!e.dryRun});let a=e.all?[`win`,`winold`,...Object.keys(i.copy.targets)]:[e.target??i.copy.defaultTarget],o={...e.optimize===void 0?{}:{optimize:!!e.optimize}},s=[];for(let t of a)s.push(await vi(r,i,t,e.dryRun,n,o));await K(`afterCopy`,`copy`,r,i,n,{dryRun:!!e.dryRun});let c=Date.now()-t;return n.done(`copy`,`${e.dryRun?`dry-run complete`:`complete`} in ${n.formatDuration(c)}`),{ok:!0,command:`copy`,durationMs:c,results:s}}const ja=/[/\\]rolldown\.config\.[A-Za-z0-9_-]+\.js$/;function Ma(e,t){return V(o.relative(e,t))}function Na(e,t,n,r){let i=H(e,t),a=jt(t),s=[];if(a){let n=W(e,t);n&&s.push(Ma(e,o.dirname(n)))}if(r.copy){for(let n of Tt(t))if(U(i,t,n.type)){let r=Pa(e,t,n.type,i);s.push(...r)}}let c=t.dev.watch?.include??[];s.push(...c);let l=Ht(s.map(t=>o.resolve(e,t))).map(t=>Ma(e,t));if(l.length===0)throw new L(`DEV_NO_WATCH_TARGETS`,`Nothing to watch: no compile entry, no copy-enabled pack directories and no dev.watch.include paths.`,{suggestions:[`Configure packs.bp.compile.entry to watch TypeScript sources.`,"Enable copying (packs.rp/bp, dev.copy or `bepack dev --copy`) to watch pack folders.",`Add paths explicitly with dev.watch.include.`]});let u=[`node_modules`,`.git`,Ma(e,Bt(e,t))];for(let n of Tt(t)){let r=U(i,t,n.type);if(r&&(u.push(Ma(e,o.join(r,`manifest.json`))),n.type===`bp`&&a)){let n=U(i,t,`bp`),r=t.packs.bp.compile.scriptOutputDir;u.push(Ma(e,o.join(n,r)))}}let d=b.watch(l,{cwd:e,ignored:[...u,ja],ignoreInitial:!0}),f=!1,p=!1,m=!1,h=async()=>{r.copy&&await yi({command:`dev`,cwd:e,config:t,logger:n,targetName:r.copyTarget,dryRun:r.dryRun,...r.mode===void 0?{}:{mode:r.mode},...r.optimize===void 0?{}:{optimize:r.optimize}})},g=async()=>{await Vn({cwd:e,config:t,command:`dev`,dryRun:r.dryRun,logger:n,...r.mode===void 0?{}:{mode:r.mode}}),await h()},_=async()=>{a?await Cr({cwd:e,config:t,logger:n,command:`dev`,typecheck:r.typecheck,cache:r.cache,dryRun:r.dryRun,quiet:!!r.quiet,...r.mode===void 0?{}:{mode:r.mode},...r.rolldownConfig===void 0?{}:{rolldownConfig:r.rolldownConfig}}):await Vn({cwd:e,config:t,command:`dev`,dryRun:r.dryRun,logger:n,...r.mode===void 0?{}:{mode:r.mode}}),await h()},v=async()=>{for(;p||m;){let e=p;p=!1,m=!1;let t=Date.now();try{n.clear(),e?(n.bepack(`dev`,`rebuilding (pending changes)`),await _(),n.done(`dev`,`rebuild done in ${n.formatDuration(Date.now()-t)}`)):await g()}catch(e){n.error(e instanceof Error?e.message:String(e))}}};d.on(`all`,async(r,i)=>{let s=V(i),c=a?W(e,t):void 0,l=c?o.dirname(c):void 0,u=o.resolve(e,s),d=l?u===l||u.startsWith(l+o.sep):!1;if(f){d?p=!0:m=!0;return}f=!0;let h=Date.now();try{n.clear(),n.bepack(`dev`,`changed ${o.normalize(i)}`),d&&a?await _():await g(),n.done(`dev`,`updated after ${o.normalize(i)} in ${n.formatDuration(Date.now()-h)}`)}catch(e){n.error(e instanceof Error?e.message:String(e))}finally{try{await v()}finally{f=!1}}});let y=t.packs.bp?V(o.relative(e,U(i,t,`bp`))):null,x=t.packs.rp?V(o.relative(e,U(i,t,`rp`))):null,S=a&&W(e,t)?Ma(e,o.dirname(W(e,t))):null,C=!1,w=[],T=0,E=0;for(let e of l)y&&(e===y||e.startsWith(y+`/`))?(T++,S&&(e===S||e.startsWith(S+`/`))&&(C=!0)):x&&(e===x||e.startsWith(x+`/`))?(E++,S&&(e===S||e.startsWith(S+`/`))&&(C=!0)):S&&(e===S||e.startsWith(S+`/`))||w.push(e);return S&&!C&&w.unshift(S),T>0&&w.push(`bp(${T})`),E>0&&w.push(`rp(${E})`),n.progress(`dev`,`watching ${w.join(`, `)}`),d}function Pa(e,t,n,r){let i=U(r,t,n);if(!i)return[];if(n===`bp`)return Lt(t).filter(e=>e!==`manifest.json`).map(t=>V(o.relative(e,o.join(i,t))));let a=t.packs.rp;return a?a.include&&a.include.length>0?a.include.filter(e=>e!==`manifest.json`).map(t=>V(o.relative(e,o.join(i,t)))):[V(o.relative(e,i))]:[]}async function Fa(e){let t=Date.now(),n=new Te({...e,silent:e.silent||e.json}),{cwd:r,config:i}=await Cn({cwd:e.cwd??process.cwd(),configPath:e.config,overrides:{...e.timing===void 0?{}:{build:{timing:e.timing}}}});n.clear(),n.bepack(`dev`,`target ${i.target}`),n.progress(`dev`,`initial build started`);let a=i.packs.bp?.compile,o=e.skipTypecheck?!1:e.typecheck?!0:a?.typecheck??!1,s=!e.skipCopy&&!!(e.copy||e.copyTarget||i.dev.copy),c=e.copyTarget??(typeof i.dev.copy==`string`?i.dev.copy:void 0),l=a?.cache.dev??!0,u=!!e.dryRun,d=!!(e.json||e.silent),f=e.optimize===void 0?{}:{optimize:!!e.optimize};return await Cr({cwd:r,config:i,logger:n,mode:e.mode,command:`dev`,...e.rolldownConfig?{rolldownConfig:e.rolldownConfig}:{},typecheck:!!o,cache:l,dryRun:u,quiet:d}),s&&await yi({command:`dev`,cwd:r,config:i,logger:n,targetName:c,dryRun:u,...e.mode===void 0?{}:{mode:e.mode},...f}),n.done(`dev`,`initial build complete in ${n.formatDuration(Date.now()-t)}`),Na(r,i,n,{copy:s,mode:e.mode,...c?{copyTarget:c}:{},...e.rolldownConfig?{rolldownConfig:e.rolldownConfig}:{},...f,typecheck:!!o,cache:l,dryRun:u,quiet:d}),{ok:!0,command:`dev`,initialBuildDurationMs:Date.now()-t}}function Ia(e){let t=/* @__PURE__ */ new WeakSet;function n(e){if(typeof e==`function`)return`[function]`;if(e instanceof RegExp)return e.toString();if(typeof e!=`object`||!e)return e;if(t.has(e))return`[circular]`;t.add(e);let r=Array.isArray(e)?e.map(n):Object.fromEntries(Object.entries(e).map(([e,t])=>[e,n(t)]));return t.delete(e),r}return n(e)}async function La(e){let t=new Te({...e,silent:e.silent||e.json}),{cwd:n,config:r,path:i}=await Cn({cwd:e.cwd??process.cwd(),configPath:e.config});if(e.json)return{cwd:n,configFile:i,config:Ia(r)};if(e.summary){t.bepack(`config`,i),t.info(`root: ${r.root}`),t.info(`name: ${r.name}`),t.info(`version: ${r.version}`),r.description&&t.info(`description: ${r.description}`),t.info(`target: ${r.target}`);let e=[];if(r.packs.bp&&e.push(`bp`),r.packs.rp&&e.push(`rp`),t.info(`packs: ${e.join(`, `)}`),r.packs.bp?.compile){let e=r.packs.bp.compile;t.info(`compile.entry: ${e.entry}`),t.info(`compile.scriptOutputDir: ${e.scriptOutputDir}`),t.info(`compile.preserveModules: ${e.preserveModules}`),t.info(`compile.typecheck: ${e.typecheck}`),e.external.length>0&&t.info(`compile.external: [${e.external.map(e=>typeof e==`string`?e:e.toString()).join(`, `)}]`)}let n=Object.keys(r.hooks);n.length>0?t.info(`hooks: ${n.join(`, `)}`):t.info(`hooks: (none)`);let a=r.plugins??[];if(a.length>0){t.info(`plugins: ${a.map(e=>`${e.name} (priority ${e.priority??0})`).join(`, `)}`);for(let e of r.pluginDiagnostics??[])t.warn(`plugin conflict: ${e}`)}else t.info(`plugins: (none)`);t.info(`install.registry: ${r.install.registry}`);let o=Object.keys(wn(r));return o.length>0?t.info(`install.dependencyCatalog: ${o.join(`, `)}`):t.info(`install.dependencyCatalog: (none)`),t.info(`pack.outDir: ${r.pack.outDir}`),r.copy.defaultTarget&&t.info(`copy.defaultTarget: ${r.copy.defaultTarget}`),r.build.copy&&t.info(`build.copy: ${r.build.copy}`),r.dev.copy&&t.info(`dev.copy: ${r.dev.copy}`),{ok:!0,command:`config`}}let a=Ia(r),o=JSON.stringify(a,null,2);return t.bepack(`config`,i),t.info(`cwd: ${n}`),t.info(`configFile: ${i}`),t.info(``),t.info(o),{ok:!0,command:`config`}}function Ra(e){return e instanceof L?{code:e.code,message:e.message,...e.details===void 0?{}:{details:e.details},...e.suggestions===void 0?{}:{suggestions:e.suggestions},...e.stack?{stack:e.stack}:{}}:e instanceof Error?{code:`UNKNOWN`,message:e.message,...e.stack?{stack:e.stack}:{}}:{code:`UNKNOWN`,message:String(e)}}function za(e){console.log(JSON.stringify(e,null,4))}const Ba=we.default.createColors(process.env.NO_COLOR===void 0&&process.env.FORCE_COLOR!==`0`),Va=i(import.meta.url),Ha=s(Va),Ua=c(Ha,`../package.json`);let Wa;try{let e=JSON.parse(n(Ua,`utf-8`));(typeof e.version!=`string`||!e.version)&&(console.error(`ERROR: package.json missing valid 'version' field`),process.exit(1)),Wa=e.version}catch(e){console.error(`ERROR: Failed to read package version: ${e.message}`),process.exit(1)}const $=ge(`bepack`);function Ga(e){return e.option(`--cwd <path>`,`Working directory`).option(`--config <path>`,`Config path`).option(`--json`,`JSON output`).option(`--dry-run`,`Do not write files`).option(`--silent`,`Silent output`).option(`--verbose`,`Verbose output`)}let Ka=!1;function qa(e,t,n){let r=Ra(t);if(n)za({ok:!1,command:e,error:r});else if(t instanceof L){if(console.error(`${Ba.red(r.code)}: ${r.message}`),r.suggestions?.length)for(let e of r.suggestions)console.error(` ${Ba.dim(`→`)} ${e}`);Ka&&r.stack&&console.error(`${Ba.dim(r.stack)}`)}else t instanceof Error?(console.error(`${Ba.red(`ERROR`)}: ${t.message}`),Ka&&r.stack&&console.error(`${Ba.dim(r.stack)}`)):console.error(`${Ba.red(`ERROR`)}: ${String(t)}`);process.exitCode=1}async function Ja(e,t,n){Ka=!!n.verbose;try{let e=await t(n);n.json&&za(e)}catch(t){qa(e,t,!!n.json)}}Ga($.command(`init`,`Create BePack project`)).option(`--format <format>`,`ts/js/mjs`).option(`--yes`,`Use defaults`).option(`--force`,`Overwrite generated files`).option(`--from-bp <path>`,`Reverse-engineer config from existing BP manifest.json`).option(`--from-rp <path>`,`Reverse-engineer config from existing RP manifest.json`).action(e=>Ja(`init`,yt,e)),Ga($.command(`install`,`Sync dependencies`)).option(`--target <target>`,`Target MC version`).option(`--registry <url>`,`npm registry`).option(`--pm <pm>`,`Package manager`).option(`--skip-pm`,`Do not run package manager`).option(`--skip-manifest`,`Do not patch manifest`).option(`--skip-package-json`,`Do not patch package.json`).option(`--save-to <field>`,`dependencies/devDependencies`).action(e=>Ja(`install`,Wn,e)),Ga($.command(`manifest`,`Patch manifest files`)).option(`--target <target>`,`Target MC version`).action(e=>Ja(`manifest`,Gn,e)),Ga($.command(`build`,`Build project`)).alias(`b`).option(`--mode <value>`,`Execution mode (passed to hooks)`).option(`--target <target>`,`Target MC version`).option(`--install`,`Run install`).option(`--skip-install`,`Skip install`).option(`--copy`,`Copy after build`).option(`--copy-target <target>`,`Copy target`).option(`--skip-copy`,`Skip copy`).option(`--pack`,`Pack after build`).option(`--skip-pack`,`Skip pack`).option(`--optimize`,`Optimize packed/copied output into __brarchive archives (--no-optimize to disable)`).option(`--typecheck`,`Run typecheck`).option(`--skip-typecheck`,`Skip typecheck`).option(`--preserve-modules`,`Preserve module output`).option(`--use-npx`,`Use npx tsc for typecheck`).option(`--minify`,`Minify output`).option(`--cache`,`Enable incremental compilation cache (--no-cache to disable)`).option(`--rolldown-config <path>`,`Custom rolldown config file (overrides bepack.config)`).option(`--timing`,`Show per-step timing`).action(e=>Ja(`build`,ka,e)),Ga($.command(`copy`,`Copy packs`)).option(`--target <target>`,`Copy target`).option(`--all`,`Copy to all targets`).option(`--optimize`,`Optimize the copied packs into __brarchive archives (--no-optimize to disable)`).action(e=>Ja(`copy`,Aa,e)),Ga($.command(`pack`,`Build and pack mcpack/mcaddon`)).option(`--name <name>`,`Output name`).option(`--optimize`,`Bundle loose files into __brarchive archives (--no-optimize to disable)`).option(`--build`,`Build before packing (default; --no-build to skip)`).option(`--skip-build`,`Pack the current pack folders without building first`).option(`--typecheck`,`Run typecheck before packing`).option(`--skip-typecheck`,`Skip typecheck before packing`).option(`--rolldown-config <path>`,`Custom rolldown config file (overrides bepack.config)`).action(e=>Ja(`pack`,Da,e)),Ga($.command(`dev`,`Watch project`)).option(`--mode <value>`,`Execution mode (passed to hooks)`).option(`--copy`,`Copy on change`).option(`--copy-target <target>`,`Copy target`).option(`--skip-copy`,`Skip copy`).option(`--typecheck`,`Run typecheck`).option(`--skip-typecheck`,`Skip typecheck`).option(`--rolldown-config <path>`,`Custom rolldown config file (overrides bepack.config)`).option(`--optimize`,`Optimize packed/copied output into __brarchive archives (--no-optimize to disable)`).option(`--timing`,`Show per-step timing`).action(e=>Ja(`dev`,Fa,e)),Ga($.command(`config`,`Show resolved config`)).option(`--summary`,`Show brief summary instead of full config`).action(e=>Ja(`config`,La,e)),$.help(),$.version(Wa);async function Ya(e){if($.unsetMatchedCommand(),$.parse(e,{run:!1}),!$.options.help&&!$.options.version){if(!$.matchedCommand){let e=$.args[0]??$.rawArgs.slice(2).find(e=>e!==`--`&&!e.startsWith(`-`));if(e){qa(`cli`,new L(`UNKNOWN_COMMAND`,`Unknown command: ${e}`,{suggestions:["Run `bepack --help` to see available commands."]}),!!$.options.json);return}$.outputHelp();return}try{await $.runMatchedCommand()}catch(e){qa(`cli`,e,!!$.options.json)}}}await Ya(process.argv);export{};