nitro-patcher 1.0.0 → 1.1.0

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/browser.js CHANGED
@@ -11101,7 +11101,7 @@ var require_lib = __commonJS({
11101
11101
  module.exports.encodings = null;
11102
11102
  module.exports.defaultCharUnicode = "\uFFFD";
11103
11103
  module.exports.defaultCharSingleByte = "?";
11104
- module.exports.encode = function encode(str, encoding, options) {
11104
+ module.exports.encode = function encode2(str, encoding, options) {
11105
11105
  str = "" + (str || "");
11106
11106
  var encoder = module.exports.getEncoder(encoding, options);
11107
11107
  var res = encoder.write(str);
@@ -11223,6 +11223,184 @@ var require_lib = __commonJS({
11223
11223
  }
11224
11224
  });
11225
11225
 
11226
+ // node_modules/.pnpm/@limrun+xdelta3-wasm@0.2.0/node_modules/@limrun/xdelta3-wasm/dist/wasm-embedded.js
11227
+ var require_wasm_embedded = __commonJS({
11228
+ "node_modules/.pnpm/@limrun+xdelta3-wasm@0.2.0/node_modules/@limrun/xdelta3-wasm/dist/wasm-embedded.js"(exports) {
11229
+ "use strict";
11230
+ init_buffer();
11231
+ Object.defineProperty(exports, "__esModule", { value: true });
11232
+ exports.xdelta3WasmBase64 = void 0;
11233
+ exports.xdelta3WasmBase64 = "AGFzbQEAAAABOwtgA39/fwF/YAJ/fwBgAX8Bf2ABfwBgAn9/AX9gAAF/YAR/f39/AX9gAABgAXwBf2ABfwF8YAN/f38AAicBA2Vudh9lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoAAMDLSwHBgAGAwABBQIDBAQEAgQAAAIEAgICAggAAwICBQkCCgICAgMBAgICAwIDBQQFAXABDAwFBgEBgASAQAYIAX8BQYCcBAsHiwMWBm1lbW9yeQIAGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAZtYWxsb2MAKARmcmVlACkIeGQzd19uZXcAGAl4ZDN3X2ZyZWUAGg54ZDN3X2lucHV0X2J1ZgAbD3hkM3dfc291cmNlX3B0cgAcDnhkM3dfaW5wdXRfY2FwAB0aeGQzd19zb3VyY2VfcmVxdWVzdF9vZmZzZXQAHhd4ZDN3X3NvdXJjZV9yZXF1ZXN0X2xlbgAfEHhkM3dfYXZhaWxfaW5wdXQAIAl4ZDN3X3N0ZXAAIQ94ZDN3X291dHB1dF9wdHIAIg94ZDN3X291dHB1dF9sZW4AIxN4ZDN3X2NvbnN1bWVfb3V0cHV0ACQTeGQzd19wcm92aWRlX3NvdXJjZQAlCnhkM3dfY2xvc2UAJgt4ZDN3X2Vycm1zZwAnC19pbml0aWFsaXplAAEZX2Vtc2NyaXB0ZW5fc3RhY2tfcmVzdG9yZQArHGVtc2NyaXB0ZW5fc3RhY2tfZ2V0X2N1cnJlbnQALAkRAQBBAQsLBgcICRQVFhcXGQEMAQIK6qICLAMAAQuwBQEDfyADIAI2AgwgA0EBAn9BAiABQQhJDQAaQQMgAUEQSQ0AGkEEIAFBIEkNABpBBSABQcAASQ0AGkEGIAFBgAFJDQAaQQcgAUGAAkkNABpBCCABQYAESQ0AGkEJIAFBgAhJDQAaQQogAUGAEEkNABpBCyABQYAgSQ0AGkEMIAFBgMAASQ0AGkENIAFBgIABSQ0AGkEOIAFBgIACSQ0AGkEPIAFBgIAESQ0AGkEQIAFBgIAISQ0AGkERIAFBgIAQSQ0AGkESIAFBgIAgSQ0AGkETIAFBgIDAAEkNABpBFCABQYCAgAFJDQAaQRUgAUGAgIACSQ0AGkEWIAFBgICABEkNABpBFyABQYCAgAhJDQAaQRggAUGAgIAQSQ0AGkEZIAFBgICAIEkNABpBGiABQYCAgMAASQ0AGkEbIAFBgICAgAFJDQAaQRwgAUGAgICAAkkNABpBHSABQYCAgIAESQ0AGkEeQR8gAUEAThsLIgF0IgQ2AgAgA0EgIAFrNgIEIAMgBEEBazYCCCAAKAJIIAJBBCAAKAJAEQAAIgRFBEAgAEGACDYCICADQQA2AhRBMA8LIAJBAnQiAARAIARBACAA/AsACyADIAQ2AhQgACAEakEEa0EBNgIAAkAgAkECayIBQQBIDQAgASEAIAJBAWtBA3EiBQRAQQAhAgNAIAQgAEECdGoiBiAGKAIEQZXJ1fkFbDYCACAAQQFrIQAgAkEBaiICIAVHDQALCyABQQJNDQADQCAEIABBAnRqIgEgASgCBCICQZXJ1fkFbDYCACABQQRrIAJBuf3amQZsNgIAIAFBCGsgAkGti6mlBGw2AgAgBCAAQQNrIgFBAnRqIgIgAigCBEGVydX5BWw2AgAgAEEEayEAIAENAAsLIAMgBCgCAEGVydX5BWw2AhBBAAvbAQEDfwJAIAEoAgAiBSgCBCIEIAUoAghHBEAgBSEDDAELAkAgACgC1AIiAwRAIAAgAygCDDYC1AIMAQsgACgCSEEBQRAgACgCQBEAACIDRQRAIABBgAg2AiBBMA8LIAAoAkhBgIABQQEgACgCQBEAACIERQRAIABBgAg2AiAgACgCSCADIAAoAkQRAQBBMA8LIANBgIABNgIIIAMgBDYCAAtBACEEIANBADYCBCAFIAM2AgwgA0EANgIMIAEgAzYCAAsgAyAEQQFqNgIEIAMoAgAgBGogAjoAAEEAC5QCAQR/IAEoAgAiBSgCBCEGA0AgBSgCCCIHIAZGBEACfyAAKALUAiIEBEAgACAEKAIMNgLUAiAEKAIIDAELIAAoAkhBAUEQIAAoAkARAAAiBEUEQCAAQYAINgIgQTAPCyAAKAJIQYCAAUEBIAAoAkARAAAiBkUEQCAAQYAINgIgIAAoAkggBCAAKAJEEQEAQTAPCyAEQYCAATYCCCAEIAY2AgBBgIABCyEHQQAhBiAEQQA2AgQgBSAENgIMIARBADYCDCABIAQ2AgAgBCEFCyAHIAZrIgQgAyADIARLGyIEBEAgBSgCACAGaiACIAT8CgAACyAFIAUoAgQgBGoiBjYCBCACIARqIQIgAyAEayIDDQALQQALogcBA38gACgCkAMiAQRAA0AgASgCBCECIAEoAgAiAwRAIAAoAkggAyAAKAJEEQEACyAAKAJIIAEgACgCRBEBACACIgENAAsLIAAoAqQBIgEEQCAAKAJIIAEgACgCRBEBAAsgACgCwAEiAQRAIAAoAkggASAAKAJEEQEACyAAKAK8ASIBBEAgACgCSCABIAAoAkQRAQALIAAoAuABIgEEQCAAKAJIIAEgACgCRBEBAAsgACgCxAEiAQRAIAAoAkggASAAKAJEEQEACyAAKALYAiIBBEADQCABKAIMIQIgASgCACIDBEAgACgCSCADIAAoAkQRAQALIAAoAkggASAAKAJEEQEAIAIiAQ0ACwsgACgC3AIiAQRAA0AgASgCDCECIAEoAgAiAwRAIAAoAkggAyAAKAJEEQEACyAAKAJIIAEgACgCRBEBACACIgENAAsLIAAoAuACIgEEQANAIAEoAgwhAiABKAIAIgMEQCAAKAJIIAMgACgCRBEBAAsgACgCSCABIAAoAkQRAQAgAiIBDQALCyAAKALkAiIBBEADQCABKAIMIQIgASgCACIDBEAgACgCSCADIAAoAkQRAQALIAAoAkggASAAKAJEEQEAIAIiAQ0ACwsgACgC1AIiAQRAA0AgASgCDCECIAEoAgAiAwRAIAAoAkggAyAAKAJEEQEACyAAKAJIIAEgACgCRBEBACACIgENAAsLIAAoAvABIgEEQCAAKAJIIAEgACgCRBEBAAsgACgC9AEiAQRAIAAoAkggASAAKAJEEQEACyAAKALMBCIBBEAgACgCSCABIAAoAkQRAQALIAAoAuwEIgEEQCAAKAJIIAEgACgCRBEBAAsgACgCjAUiAQRAIAAoAkggASAAKAJEEQEACyAAKAKoBCEBAkAgACgCrAQiAkUNACABIAJGDQAgACgCSCACIAAoAkQRAQAgACgCqAQhAQsgAQRAIAAoAkggASAAKAJEEQEACyAAKALAAiIBBEAgACgCSCABIAAoAkQRAQALIAAoAsgDIgEEQCAAKAJIIAEgACgCRBEBAAsgACgCvAMiAQRAIAAoAkggASAAKAJEEQEACyAAKAKoBSIBBEAgACgCSCABIAAoAkQRAQALIAAoAsAFIgEEQCAAKAJIIAEgACgCRBEBAAsgACgCzAUiAQRAIAAoAkggASAAKAJEEQEACyAAKALY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IAFBoA8pAgA3AoABQQAMBAsgAUGwDigCADYCoAEgAUGoDikCADcCmAEgAUGgDikCADcCkAEgAUGYDikCADcCiAEgAUGQDikCADcCgAFBAAwDCyABQdQOKAIANgKgASABQcwOKQIANwKYASABQcQOKQIANwKQASABQbwOKQIANwKIASABQbQOKQIANwKAAQtBAAwBC0HS9X4LDQEgAUGAgIACNgKAByABQYAHaiEDAkAgBUUNAEGAgIAgIQQgBUH///8fSw0AQYCAgAIhAgNAIAIiBEEBdCECIAQgBUkNAAsLIAFBADYCmAcgASAENgKMByABQv////8PNwKQByABIAMiBjYCJCADQgA3AhxBASEEIAMCfyADKAIAIgNpQQFGBEAgA2gMAQsDQCAEIgJBAXQhBCACIANJDQALIAYgAjYCACACaAsiCDYCJCAGQn8gCK2Gp0F/cyIHNgIoQQEhAgJAIAYoAgwiA2lBAUYEQCADIQQMAQsDQCACIgRBAXQhAiADIARLDQALCyAGQQE2AkAgBiAFIAdxNgI8IAYgBSAIdjYCOCAGQYCAASAEIARBgIABTRs2AgwgAQVBAAsPCyABEAUgASgCyAcQKSABKALMBxApIAEQKUEAC5MKARJ/IAAoAkgiA0UEQEHR9X4PCyADQdAHaiEFAkACQCADKALQByIERQ0AIAMoAtQHIAJHDQBBACEEDAELAkAgAygC4AciDUUNACADKALkByACRw0AIANB4AdqIQVBgICAAiEEDAELAkAgAygC8AciBkUNACADKAL0ByACRw0AIANB8AdqIQVBgICABCEEDAELAkAgAygCgAgiDkUNACADKAKECCACRw0AIANBgAhqIQVBgICABiEEDAELAkAgAygCkAgiB0UNACADKAKUCCACRw0AIANBkAhqIQVBgICACCEEDAELAkAgAygCoAgiD0UNACADKAKkCCACRw0AIANBoAhqIQVBgICACiEEDAELAkAgAygCsAgiCEUNACADKAK0CCACRw0AIANBsAhqIQVBgICADCEEDAELAkAgAygCwAgiEEUNACADKALECCACRw0AIANBwAhqIQVBgICADiEEDAELAkAgAygC0AgiCUUNACADKALUCCACRw0AIANB0AhqIQVBgICAECEEDAELAkAgAygC4AgiEUUNACADKALkCCACRw0AIANB4AhqIQVBgICAEiEEDAELAkAgAygC8AgiCkUNACADKAL0CCACRw0AIANB8AhqIQVBgICAFCEEDAELAkAgAygCgAkiEkUNACADKAKECSACRw0AIANBgAlqIQVBgICAFiEEDAELAkAgAygCkAkiC0UNACADKAKUCSACRw0AIANBkAlqIQVBgICAGCEEDAELAkAgAygCoAkiE0UNACADKAKkCSACRw0AIANBoAlqIQVBgICAGiEEDAELAkAgAygCsAkiDEUNACADKAK0CSACRw0AIANBsAlqIQVBgICAHCEEDAELAkAgAygCwAkiFEUNACADKALECSACRw0AIANBwAlqIQVBgICAHiEEDAELIARBAEdBA0ECIAYbIARFIA1FciIEG0EFQQQgBxsgDkUgBCAGRXJyIgQbQQdBBiAIGyAPRSAEIAdFcnIiBBtBCUEIIAkbIBBFIAQgCEVyciIEQQFxG0ELQQogChsgEUUgBCAJRXJyIgRBAXEbQQ1BDCALGyASRSAEIApFcnIiBEEBcRtBD0EOIAwbIBNFIAQgC0VyckEBcSIGGyEEAkAgBg0AIAxFDQAgFEUNAEEPQQ5BDUEMQQtBCkEJQQhBB0EGQQVBBEEDQQIgAygC7AcgAygC3AdJIgQgAygC/AcgBSAEQQR0aigCDEkbIgQgAygCjAggBSAEQQR0aigCDEkbIgQgAygCnAggBSAEQQR0aigCDEkbIgQgAygCrAggBSAEQQR0aigCDEkbIgQgAygCvAggBSAEQQR0aigCDEkbIgQgAygCzAggBSAEQQR0aigCDEkbIgQgAygC3AggBSAEQQR0aigCDEkbIgQgAygC7AggBSAEQQR0aigCDEkbIgQgAygC/AggBSAEQQR0aigCDEkbIgQgAygCjAkgBSAEQQR0aigCDEkbIgQgAygCnAkgBSAEQQR0aigCDEkbIgQgAygCrAkgBSAEQQR0aigCDEkbIgQgAygCvAkgBSAEQQR0aigCDEkbIgQgAygCzAkgBSAEQQR0aigCDEkbIQQLIAMgAjYC2AkgAyAENgLUCSABIAI2AjQgAEGxCDYCIEHX9X4PCyADIAMoAtAJQQFqIgA2AtAJIAUgADYCDCADKALMByEAIAEgAjYCECABIAAgBGo2AhggASAFKAIINgIUQQALHwAgAARAIAAQBSAAKALIBxApIAAoAswHECkgABApCwsRACAARQRAQQAPCyAAKALIBwspAQJ/AkAgAEUNACAAKALUCSICQQ9LDQAgACgCzAcgAkEWdGohAQsgAQsHAEGAgIACCyUBAXwCQCAARQ0AIAAoAtQJQQ9LDQAgACgC2AlBFnS4IQELIAELRwECfwJAIABFDQAgACgC1AlBD0sNAEGAgIACIAAoAsQHIgEgACgC2AlBFnQiAGsiAiACQYCAgAJPG0EAIAAgAUkbIQELIAELKwAgAARAIAIEQCAAIAAoAkxBEHI2AkwLIAAgATYCBCAAIAAoAsgHNgIACwvTLwEPfyAARQRAQdH1fg8LQQEhDyMAQSBrIgokAAJAAkACQAJ/AkACQCAAIgEoApwDBEAgAUG3CTYCIAwBCwJAAkACQAJAAkACQAJAAkAgASgC+AEOBwABAgMEBQYHCwJ/IAEoAkwhBQJAAkACQAJAAkAgASgCJCIABEAgASAAKAIMIAEoAowBbiABKAKIASABQagBahACIgINAQsgBUGAwABxRQRAIAEgASgCKCABKAKQASABQcwBahACIgINAQsgAUHYAmohBCABQegCaiEFAkAgASgC1AIiAgRAIAEgAigCDCIANgLUAgwBCyABKAJIQQFBECABKAJAEQAAIgJFDQMgASgCSEGAgAFBASABKAJAEQAAIgBFDQIgAkGAgAE2AgggAiAANgIAIAEoAtQCIQALIAJBADYCDCACQQA2AgQgBSACNgIAIAQgAjYCAAJAIAAEQCABIAAoAgwiAjYC1AIMAQtBASEDIAEoAkhBAUEQIAEoAkARAAAiAEUNAyABKAJIQYCAAUEBIAEoAkARAAAiAkUEQCAAIQIMAwsgAEGAgAE2AgggACACNgIAIAEoAtQCIQILIABBADYCDCAAQQA2AgQgASAANgLcAiABIAA2AuwCAkAgAgRAIAEgAigCDCIANgLUAgwBCyABKAJIQQFBECABKAJAEQAAIgJFBEBBAiEDDAQLIAEoAkhBgIABQQEgASgCQBEAACIARQRAQQIhAwwDCyACQYCAATYCCCACIAA2AgAgASgC1AIhAAsgAkEANgIMIAJBADYCBCABIAI2AuACIAEgAjYC8AICQCAABEAgASAAKAIMNgLUAgwBCyABKAJIQQFBECABKAJAEQAAIgJFBEBBAyEDDAQLIAEoAkhBgIABQQEgASgCQBEAACIARQRAQQMhAwwDCyACQYCAATYCCCACIAA2AgAgAiEACyAAQQA2AgwgAEEANgIEIAEgAUGEA2oiDjYCiAMgASAONgKEAyABIAFB/AJqIgI2AoADIAEgAjYC/AIgASAANgLkAiABIAA2AvQCIAEoAjQhAiABKAJIQQhBASABKAJAEQAAIgBFDQQgASgCSEEYIAIgASgCQBEAACIHRQRAIAFBgAg2AiAgAEEANgIAQTAMBgsgACAHNgIAIAAgASgCkAM2AgQgASAANgKQAwJAIAJFDQAgAkEDcSENQQAhA0EAIQAgAkEETwRAIAJBfHEhBQNAIAEoAogDIQQgASAHIABBGGxqIglBEGoiAjYCiAMgBCACNgIAIAkgBDYCFCAJIA42AhAgASgCiAMhBCABIAlBKGoiAjYCiAMgBCACNgIAIAkgBDYCLCAJIA42AiggASgCiAMhBCABIAlBQGsiAjYCiAMgBCACNgIAIAkgBDYCRCAJIA42AkAgASgCiAMhBCABIAlB2ABqIgI2AogDIAQgAjYCACAJIAQ2AlwgCSAONgJYIABBBGohACAGQQRqIgYgBUcNAAsgDUUNAQsDQCABKAKIAyEEIAEgByAAQRhsaiIFQRBqIgI2AogDIAQgAjYCACAFIAQ2AhQgBSAONgIQIABBAWohACADQQFqIgMgDUcNAAsLIAEgASgCpAUiAC0AATYC5AEgASAALQACNgLoASABIAEoApwFEQUANgKgBSABKALwASIABEAgASgCSCAAIAEoAkQRAQALIAEoAvQBIgAEQCABKAJIIAAgASgCRBEBAAsgASgC5AEiAARAIAEoAkggAEEEIAEoAkARAAAiAEUEQCABQQA2AvABDAYLIAEgADYC8AELQQAhAiABKALoASIARQ0AIAEoAkggAEEIdEEEIAEoAkARAAAiAEUEQCABQQA2AvQBDAULIAEgADYC9AELIAIMBAsgAUGACDYCICABKAJIIAIgASgCRBEBAAwBCyABQYAINgIgCyAFIANBAnQiAGpBADYCACAAIARqQQA2AgBBMAwBCyABQYAINgIgQTALIgINDCABQQE2AvgBCyABKAIARQRAQdn1fiECDAwLIAEoAsgCIgINCUEAIQIgASgCxAINCSABKAIEIAEoAihPDQogAS0ATEEQcQ0KDAkLAkAgASgCJEUNAAJAAkAgASgCmAIOAwABAQILIAEoAgQEQCABIAEoApwCEA0aIAFBAjYCmAIMAQsgAUEANgK0AiABQQM2ApgCCyABKAIERQ0AIAEQDiICDQsgASABKAKAAiABKAK0Amo2AoACCyABKAIEBEAgASABKAKEARECACICDQsLIAFBAzYC+AELIAFBARAMIgINCSABKAIEIgAgASgCiAIiAksEQCAKQQE6AAggCiACNgIMIAogACACazYCECABIApBCGoQDyICDQoLIAEoAowDIgAEQCABIAAgAC0AAhAQIgINCiABKAKMAyIFLQAAQQFHBEAgASgCiAMhAiABIAVBEGoiADYCiAMgAiAANgIAIAUgAjYCFCAFIAFBhANqNgIQCyABQQA2AowDCyABQQQ2AvgBCyABKAIkIgAEfyAAKAIcBUEAC0UhDiABKAJMIQ0CQCABKAIYDQAgASgCrAUhAyABKAKUAyEHIAFB6AJqIQgCQCABKALoAiIAKAIEIgQgACgCCEcEQCAAIQIMAQsCQCABKALUAiICBEAgASACKAIMNgLUAgwBCyABKAJIQQFBECABKAJAEQAAIgJFBEAgAUGACDYCIEEwIQIMDAsgASgCSEGAgAFBASABKAJAEQAAIgVFBEAgAUGACDYCICABKAJIIAIgASgCRBEBAEEwIQIMDAsgAkGAgAE2AgggAiAFNgIAC0EAIQQgAkEANgIEIAAgAjYCDCACQQA2AgwgCCACNgIACyACIARBAWo2AgQgAigCACAEakHWAToAAAJAIAgoAgAiACgCBCIEIAAoAghHBEAgACECDAELAkAgASgC1AIiAgRAIAEgAigCDDYC1AIMAQsgASgCSEEBQRAgASgCQBEAACICRQRAIAFBgAg2AiBBMCECDAwLIAEoAkhBgIABQQEgASgCQBEAACIFRQRAIAFBgAg2AiAgASgCSCACIAEoAkQRAQBBMCECDAwLIAJBgIABNgIIIAIgBTYCAAtBACEEIAJBADYCBCAAIAI2AgwgAkEANgIMIAggAjYCAAsgAiAEQQFqNgIEIAIoAgAgBGpBwwE6AAACQCAIKAIAIgAoAgQiBCAAKAIIRwRAIAAhAgwBCwJAIAEoAtQCIgIEQCABIAIoAgw2AtQCDAELIAEoAkhBAUEQIAEoAkARAAAiAkUEQCABQYAINgIgQTAhAgwMCyABKAJIQYCAAUEBIAEoAkARAAAiBUUEQCABQYAINgIgIAEoAkggAiABKAJEEQEAQTAhAgwMCyACQYCAATYCCCACIAU2AgALQQAhBCACQQA2AgQgACACNgIMIAJBADYCDCAIIAI2AgALIAIgBEEBajYCBCACKAIAIARqQcQBOgAAIAEgCEEAEAMiAg0JIAEgCCADQQBHIgBBBHIgACAHGxADIgINCSAHRQ0AIAEgCCABKAKYAxARIgINCSABIAggASgClAMgASgCmAMQBCICDQkLIAFB6AJqIQgCQCABKALoAiIAKAIEIgMgACgCCEcEQCAAIQIMAQsCQCABKALUAiICBEAgASACKAIMNgLUAgwBCyABKAJIQQFBECABKAJAEQAAIgJFBEAgAUGACDYCIEEwIQIMCwsgASgCSEGAgAFBASABKAJAEQAAIgVFBEAgAUGACDYCICABKAJIIAIgASgCRBEBAEEwIQIMCwsgAkGAgAE2AgggAiAFNgIAC0EAIQMgAkEANgIEIAAgAjYCDCACQQA2AgwgCCACNgIACyACIANBAWo2AgQgAigCACADaiAORSIAQQRyIAAgDUGAiAJxIg0bOgAAIAAEQCABKAIkKAIcIQJBCiEAA0AgACIFQQFrIgAgCkEIamoiBiACQYABcjoAACACQQd2IgINAAsgCiAKLQARQf8AcToAEUELIAVrIQQgASgC6AIiAigCBCEDA0AgAigCCCIHIANGBEACfyABKALUAiIABEAgASAAKAIMNgLUAiAAKAIIDAELIAEoAkhBAUEQIAEoAkARAAAiAEUEQCABQYAINgIgQTAhAgwNCyABKAJIQYCAAUEBIAEoAkARAAAiBUUEQCABQYAINgIgIAEoAkggACABKAJEEQEAQTAhAgwNCyAAQYCAATYCCCAAIAU2AgBBgIABCyEHQQAhAyAAQQA2AgQgAiAANgIMIABBADYCDCAIIAA2AgAgACECCyAHIANrIgAgBCAAIARJGyIABEAgAigCACADaiAGIAD8CgAACyACIAIoAgQgAGoiAzYCBCAAIAZqIQYgBCAAayIEDQALIAEoAiQoAiAhAkEKIQADQCAAIgVBAWsiACAKQQhqaiIGIAJBgAFyOgAAIAJBB3YiAg0ACyAKIAotABFB/wBxOgARQQsgBWshBCAIKAIAIgIoAgQhAwNAIAIoAggiByADRgRAAn8gASgC1AIiAARAIAEgACgCDDYC1AIgACgCCAwBCyABKAJIQQFBECABKAJAEQAAIgBFBEAgAUGACDYCIEEwIQIMDQsgASgCSEGAgAFBASABKAJAEQAAIgVFBEAgAUGACDYCICABKAJIIAAgASgCRBEBAEEwIQIMDQsgAEGAgAE2AgggACAFNgIAQYCAAQshB0EAIQMgAEEANgIEIAIgADYCDCAAQQA2AgwgCCAANgIAIAAhAgsgByADayIAIAQgACAESRsiAARAIAIoAgAgA2ogBiAA/AoAAAsgAiACKAIEIABqIgM2AgQgACAGaiEGIAQgAGsiBA0ACwsgASgC3AIiAgRAA0AgAigCBCALaiELIAIoAgwiAg0ACwsgASgC4AIiAgRAA0AgAigCBCAMaiEMIAIoAgwiAg0ACwsgASgCBCEHIAEoAuQCIgIEQANAIAIoAgQgCWohCSACKAIMIgINAAsLQQEhAgJ/QQEgB0GAAUkNABpBAiAHQYCAAUkNABpBAyAHQYCAgAFJDQAaQQRBBSAHQYCAgIABSRsLIQUCQCALQYABSQ0AIAtBgIABSQRAQQIhAgwBCyALQYCAgAFJBEBBAyECDAELQQRBBSALQYCAgIABSRshAgtBASEDAn9BASAMQYABSQ0AGkECIAxBgIABSQ0AGkEDIAxBgICAAUkNABpBBEEFIAxBgICAgAFJGwshAAJAIAlBgAFJDQAgCUGAgAFJBEBBAiEDDAELIAlBgICAAUkEQEEDIQMMAQtBBEEFIAlBgICAgAFJGyEDCyALQQVBASANG2ogDGogCWogBWogAmogAGogA2ohAkEKIQADQCAAIgVBAWsiACAKQQhqaiIGIAJBgAFyOgAAIAJBB3YiAg0ACyAKIAotABFB/wBxOgARQQsgBWshBCABKALoAiICKAIEIQMDQCACKAIIIgUgA0YEQAJ/IAEoAtQCIgAEQCABIAAoAgw2AtQCIAAoAggMAQsgASgCSEEBQRAgASgCQBEAACIARQRAIAFBgAg2AiBBMCECDAwLIAEoAkhBgIABQQEgASgCQBEAACIFRQRAIAFBgAg2AiAgASgCSCAAIAEoAkQRAQBBMCECDAwLIABBgIABNgIIIAAgBTYCAEGAgAELIQVBACEDIABBADYCBCACIAA2AgwgAEEANgIMIAggADYCACAAIQILIAUgA2siACAEIAAgBEkbIgAEQCACKAIAIANqIAYgAPwKAAALIAIgAigCBCAAaiIDNgIEIAAgBmohBiAEIABrIgQNAAtBCiECA0AgAiIAQQFrIgIgCkEIamoiBiAHQYABcjoAACAHQQd2IgcNAAsgCiAKLQARQf8AcToAEUELIABrIQQgCCgCACICKAIEIQMDQCACKAIIIgcgA0YEQAJ/IAEoAtQCIgAEQCABIAAoAgw2AtQCIAAoAggMAQsgASgCSEEBQRAgASgCQBEAACIARQRAIAFBgAg2AiBBMCECDAwLIAEoAkhBgIABQQEgASgCQBEAACIFRQRAIAFBgAg2AiAgASgCSCAAIAEoAkQRAQBBMCECDAwLIABBgIABNgIIIAAgBTYCAEGAgAELIQdBACEDIABBADYCBCACIAA2AgwgAEEANgIMIAggADYCACAAIQILIAcgA2siACAEIAAgBEkbIgAEQCACKAIAIANqIAYgAPwKAAALIAIgAigCBCAAaiIDNgIEIAAgBmohBiAEIABrIgQNAAsgASAIQQAQAyICDQggASAIIAsQESICDQggASAIIAwQESICDQggASAIIAkQESICDQggDQRAIAoCfyABLQBNQQRxBEAgASgCACEDQQAhBkEBIQsgASgCBCICBH8DQCACQbArIAIgAkGwK08bIgBrIQUCQCACQRBPBEADQCALIAMtAABqIgIgBmogAiADLQABaiICaiACIAMtAAJqIgJqIAIgAy0AA2oiAmogAiADLQAEaiICaiACIAMtAAVqIgJqIAIgAy0ABmoiAmogAiADLQAHaiICaiACIAMtAAhqIgJqIAIgAy0ACWoiAmogAiADLQAKaiICaiACIAMtAAtqIgJqIAIgAy0ADGoiAmogAiADLQANaiICaiACIAMtAA5qIgJqIAIgAy0AD2oiC2ohBiAAIgJBEGshACADQRBqIQMgAkEfSw0ACyAARQ0BC0EAIQwgAyECIAAhBCAAQQNxIg0EQANAIARBAWshBCALIAItAABqIgsgBmohBiACQQFqIQIgDEEBaiIMIA1HDQALCyAAQQFrQQNPBEADQCALIAItAABqIg4gAi0AAWoiByACLQACaiINIAItAANqIgsgDSAHIAYgDmpqamohBiACQQRqIQIgBEEEayIEDQALCyAAIANqIQMLIAZB8f8DcCEGIAtB8f8DcCELIAUiAg0ACyAGQRB0IAtyBUEBCwwBCyABKAL4AgsiAEEQeCAAc0GA/oN4cUEIdiAAQQh4czYACCABIAggCkEIakEEEAQiAg0JCyABIAEoAtgCIgI2AtACIAEoAugCIAEoAtwCNgIMIAFBADYC3AIgASgC7AIgASgC4AI2AgwgAUEANgLgAiABKALwAiABKALkAjYCDCABQQA2AuQCQQAMBQsgASgCEEUNAyABQZMINgIgDAILIAEQCiABQQE2AvgBIAEgASgCGEEBajYCGCABKALIAiICDQRB2fV+IQIMBgsgAUH2CjYCIAtB0vV+IQIMBAtBAQshAANAAkAgAEUEQCABQQU2AvgBIAEgAigCADYCDCABIAIoAgQiADYCECABIAAgASgCHGo2AhwgAEUNAUHY9X4hAgwFCyABIAEoAtACKAIMIgI2AtACIAJFBEAgAUEGNgL4ASABIAEoAgggASgCBGo2AghB1PV+IQIMBQtBACEADAELQQEhAAwACwALIAEoAsACIgBFBEAgASgCSCABKAIoQQEgASgCQBEAACIARQRAIAFBADYCwAIgAUGACDYCIEEwIQIMAwsgASAANgLAAiABKALIAiECCwJAIAJFBEAgASgCxAIhAwwBCyABKALMAiIFBEAgACACIAX8CgAACyABQQA2AsgCIAEgASgCzAIiAzYCxAIgASgCwAIhAAsgASgCKCADayIFIAEoAgQiAiACIAVLGyIFBEAgACADaiABKAIAIAX8CgAACyABIAEoAsQCIAVqIgI2AsQCAkAgBSABKAIEIgBJBEAgASAAIAVrNgLMAiABIAEoAgAgBWo2AsgCDAELIAIgASgCKE8NACABLQBMQRBxDQBB2fV+IQIMAgsgAUEANgLEAiABIAI2AgQgASABKALAAjYCAAsgASgC5AEiAARAIABBAnQiAARAIAEoAvABQQAgAPwLAAsgAUEANgLsAQsCQCABKALoASIARQ0AIABBCnQiAEUNACABKAL0AUEAIAD8CwALIAFBADYCiAIgAUKAgICAwAA3AoACIAFBAjYC+AFB1fV+IQILIApBIGokAAJAAkACQAJAAkACQCACIgBBrIoBag4GBQUDAQAEAgtBAg8LQQMPCyAARQ0CCyABIAA2AuAJIAEgASgCICICBH8gAgUgAEGyigFqIgJBC00E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QTA2AgBBfw8LQfQPIAA2AgAgAgsGACAAJAALBAAjAAsLgggCAEGACAvyB291dCBvZiBtZW1vcnkAc2xvdwBtaXNzZWQgY2FsbCB0byBjb25zdW1lIG91dHB1dABnZXRibGsgc291cmNlIGlucHV0AGZhc3Rlc3QAZmFzdABkZWZhdWx0AHNvZnQAdG9vIG1hbnkgc2Vjb25kYXJ5IGNvbXByZXNzb3IgdHlwZXMgc2V0AGZhc3RlcgBzcHJldnN6IGlzIHJlcXVpcmVkIHRvIGJlIGEgcG93ZXIgb2YgdHdvAGVuY29kZXIvZGVjb2RlciB0cmFuc2l0aW9uAHVuYXZhaWxhYmxlIHNlY29uZGFyeSBjb21wcmVzc29yOiBGR0sgQWRhcHRpdmUgSHVmZm1hbgB1bmF2YWlsYWJsZSBzZWNvbmRhcnkgY29tcHJlc3NvcjogREpXIFN0YXRpYyBIdWZmbWFuAGludmFsaWQgc29mdCBzdHJpbmctbWF0Y2ggY29uZmlnAGVuY29kaW5nIGlzIGluY29tcGxldGUAaW52YWxpZCBzdGF0ZQBYRDNfU0VDIGZsYWdzIHJlcXVpcmUgYSBzZWNvbmRhcnkgY29tcHJlc3NvciB0eXBlAGludmFsaWQgc3RyaW5nIG1hdGNoIGNvbmZpZyB0eXBlAGludmFsaWQgeGRlbHRhMyBlbmNvZGVyIGhhbmRsZQBlb2YgaW4gZGVjb2RlAFhEM19PVVRQVVQAWEQzX0lOVkFMSURfSU5QVVQAWEQzX0lOUFVUAFhEM19XSU5TVEFSVABYRDNfR09USEVBREVSAFhEM19JTlRFUk5BTABYRDNfR0VUU1JDQkxLAFhEM19UT09GQVJCQUNLAFhEM19XSU5GSU5JU0gAWEQzX05PU0VDT05EAFhEM19JTlZBTElEAFhEM19VTklNUExFTUVOVEVEAHVuYXZhaWxhYmxlIHNlY29uZGFyeSBjb21wcmVzc29yOiBMWk1BABEEAw8EBgQBBAQGowMGrwMGuwMGxwMG0wMG3wME6wEE7wEE8wEE9wEE+AEE+QEE+gEE+wEE/AEE/QEE/gEE/wFSBAAABQAAAAkAAAADAAAABAAAAAgAAAACAAAAJAAAAEYAAAAOBAAABgAAAAkAAAACAAAABAAAACwAAAANAAAAWgAAAEYAAABFBAAABwAAAAkAAAAaAAAABAAAAAEAAAABAAAABgAAAAYAAACHBAAACAAAAAkAAAAPAAAABAAAAAEAAAABAAAAEgAAABIAAABNBAAACQAAAAkAAAAIAAAABAAAAAQAAAABAAAAEgAAACMAAACXBgAAfgYAAA8GAACLBgAARgYAAGEGAABwBgAAKwYAADgGAABTBgAABAYAACEGAEH1DwsCDgE=";
11234
+ }
11235
+ });
11236
+
11237
+ // node_modules/.pnpm/@limrun+xdelta3-wasm@0.2.0/node_modules/@limrun/xdelta3-wasm/dist/index.js
11238
+ var require_dist = __commonJS({
11239
+ "node_modules/.pnpm/@limrun+xdelta3-wasm@0.2.0/node_modules/@limrun/xdelta3-wasm/dist/index.js"(exports) {
11240
+ "use strict";
11241
+ init_buffer();
11242
+ Object.defineProperty(exports, "__esModule", { value: true });
11243
+ exports.encode = encode2;
11244
+ var wasm_embedded_1 = require_wasm_embedded();
11245
+ var STATUS_NEED_INPUT = 1;
11246
+ var STATUS_HAVE_OUTPUT = 2;
11247
+ var STATUS_NEED_SOURCE_BLOCK = 3;
11248
+ var STATUS_CONTINUE = 4;
11249
+ var wasmModuleReady = null;
11250
+ var wasmImports = {
11251
+ env: {
11252
+ emscripten_notify_memory_growth: () => void 0
11253
+ }
11254
+ };
11255
+ function base64ToBytes(base64) {
11256
+ const maybeBuffer = globalThis.Buffer;
11257
+ if (maybeBuffer) {
11258
+ return new Uint8Array(maybeBuffer.from(base64, "base64"));
11259
+ }
11260
+ const binary = globalThis.atob(base64);
11261
+ const out = new Uint8Array(binary.length);
11262
+ for (let i2 = 0; i2 < binary.length; i2 += 1) {
11263
+ out[i2] = binary.charCodeAt(i2);
11264
+ }
11265
+ return out;
11266
+ }
11267
+ function base64ToArrayBuffer(base64) {
11268
+ const bytes2 = base64ToBytes(base64);
11269
+ const out = new Uint8Array(bytes2.byteLength);
11270
+ out.set(bytes2);
11271
+ return out.buffer;
11272
+ }
11273
+ async function loadWasmModule() {
11274
+ if (!wasmModuleReady) {
11275
+ wasmModuleReady = WebAssembly.compile(base64ToArrayBuffer(wasm_embedded_1.xdelta3WasmBase64));
11276
+ }
11277
+ return await wasmModuleReady;
11278
+ }
11279
+ async function instantiateWasm() {
11280
+ const wasmModule = await loadWasmModule();
11281
+ const instance = await WebAssembly.instantiate(wasmModule, wasmImports);
11282
+ const exports2 = instance.exports;
11283
+ exports2._initialize?.();
11284
+ return exports2;
11285
+ }
11286
+ function memoryBytes(wasm, ptr, len) {
11287
+ return new Uint8Array(wasm.memory.buffer, ptr, len);
11288
+ }
11289
+ function copyFromMemory(wasm, ptr, len) {
11290
+ const out = new Uint8Array(len);
11291
+ out.set(memoryBytes(wasm, ptr, len));
11292
+ return out;
11293
+ }
11294
+ function readCString(wasm, ptr) {
11295
+ if (ptr === 0) {
11296
+ return "";
11297
+ }
11298
+ const bytes2 = new Uint8Array(wasm.memory.buffer);
11299
+ let end = ptr;
11300
+ while (end < bytes2.length && bytes2[end] !== 0) {
11301
+ end += 1;
11302
+ }
11303
+ return new TextDecoder().decode(bytes2.subarray(ptr, end));
11304
+ }
11305
+ function errorMessage2(wasm, handle, code) {
11306
+ const message = readCString(wasm, wasm.xd3w_errmsg(handle));
11307
+ return new Error(message ? `xdelta3 encode failed: ${message} (code=${code})` : `xdelta3 encode failed (code=${code})`);
11308
+ }
11309
+ async function* drainEncoder(wasm, handle, source) {
11310
+ for (; ; ) {
11311
+ const status = wasm.xd3w_step(handle);
11312
+ switch (status) {
11313
+ case STATUS_NEED_INPUT:
11314
+ return;
11315
+ case STATUS_HAVE_OUTPUT: {
11316
+ const len = wasm.xd3w_output_len(handle);
11317
+ if (len > 0) {
11318
+ const ptr = wasm.xd3w_output_ptr(handle);
11319
+ if (ptr === 0) {
11320
+ throw new Error("xdelta3 encoder produced output without a pointer");
11321
+ }
11322
+ yield copyFromMemory(wasm, ptr, len);
11323
+ }
11324
+ wasm.xd3w_consume_output(handle);
11325
+ break;
11326
+ }
11327
+ case STATUS_NEED_SOURCE_BLOCK: {
11328
+ const sourcePtr = wasm.xd3w_source_ptr(handle);
11329
+ if (sourcePtr === 0) {
11330
+ throw new Error("xdelta3 encoder did not provide a source buffer");
11331
+ }
11332
+ const offset = wasm.xd3w_source_request_offset(handle);
11333
+ const maxLen = wasm.xd3w_source_request_len(handle);
11334
+ if (!Number.isFinite(offset) || offset < 0 || maxLen < 0) {
11335
+ throw new Error(`xdelta3 encoder requested invalid source range: offset=${offset} len=${maxLen}`);
11336
+ }
11337
+ const sourceView = memoryBytes(wasm, sourcePtr, maxLen);
11338
+ const bytesRead = maxLen === 0 ? 0 : await source.read(offset, sourceView);
11339
+ if (!Number.isInteger(bytesRead) || bytesRead < 0 || bytesRead > maxLen) {
11340
+ throw new Error(`source reader returned invalid byte count: ${bytesRead}`);
11341
+ }
11342
+ wasm.xd3w_provide_source(handle, bytesRead);
11343
+ break;
11344
+ }
11345
+ case STATUS_CONTINUE:
11346
+ break;
11347
+ default:
11348
+ throw errorMessage2(wasm, handle, status);
11349
+ }
11350
+ }
11351
+ }
11352
+ async function* feedChunk(wasm, handle, source, chunk, isFinalChunk) {
11353
+ const inputPtr = wasm.xd3w_input_buf(handle);
11354
+ const inputCap = wasm.xd3w_input_cap();
11355
+ if (inputPtr === 0 || inputCap <= 0) {
11356
+ throw new Error("xdelta3 encoder did not provide an input buffer");
11357
+ }
11358
+ if (chunk.byteLength === 0) {
11359
+ if (isFinalChunk) {
11360
+ wasm.xd3w_avail_input(handle, 0, 1);
11361
+ yield* drainEncoder(wasm, handle, source);
11362
+ }
11363
+ return;
11364
+ }
11365
+ for (let offset = 0; offset < chunk.byteLength; offset += inputCap) {
11366
+ const end = Math.min(offset + inputCap, chunk.byteLength);
11367
+ const segment = chunk.subarray(offset, end);
11368
+ memoryBytes(wasm, inputPtr, segment.byteLength).set(segment);
11369
+ const isFinalSegment = isFinalChunk && end === chunk.byteLength;
11370
+ wasm.xd3w_avail_input(handle, segment.byteLength, isFinalSegment ? 1 : 0);
11371
+ yield* drainEncoder(wasm, handle, source);
11372
+ }
11373
+ }
11374
+ async function* encode2(target, source) {
11375
+ const wasm = await instantiateWasm();
11376
+ const handle = wasm.xd3w_new(source.size);
11377
+ if (handle === 0) {
11378
+ throw new Error("failed to allocate xdelta3 encoder");
11379
+ }
11380
+ try {
11381
+ let pending = null;
11382
+ for await (const chunk of target) {
11383
+ if (pending) {
11384
+ yield* feedChunk(wasm, handle, source, pending, false);
11385
+ }
11386
+ pending = chunk;
11387
+ }
11388
+ if (pending) {
11389
+ yield* feedChunk(wasm, handle, source, pending, true);
11390
+ } else {
11391
+ yield* feedChunk(wasm, handle, source, new Uint8Array(0), true);
11392
+ }
11393
+ const closeRet = wasm.xd3w_close(handle);
11394
+ if (closeRet !== 0) {
11395
+ throw errorMessage2(wasm, handle, closeRet);
11396
+ }
11397
+ } finally {
11398
+ wasm.xd3w_free(handle);
11399
+ }
11400
+ }
11401
+ }
11402
+ });
11403
+
11226
11404
  // src/browser.ts
11227
11405
  init_buffer();
11228
11406
 
@@ -12216,7 +12394,9 @@ var fdt = new u82(32);
12216
12394
  for (i = 0; i < 32; ++i)
12217
12395
  fdt[i] = 5;
12218
12396
  var i;
12397
+ var flm = /* @__PURE__ */ hMap(flt, 9, 0);
12219
12398
  var flrm = /* @__PURE__ */ hMap(flt, 9, 1);
12399
+ var fdm = /* @__PURE__ */ hMap(fdt, 5, 0);
12220
12400
  var fdrm = /* @__PURE__ */ hMap(fdt, 5, 1);
12221
12401
  var max = function(a) {
12222
12402
  var m = a[0];
@@ -12412,7 +12592,360 @@ var inflt = function(dat, st, buf, dict) {
12412
12592
  } while (!final);
12413
12593
  return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);
12414
12594
  };
12595
+ var wbits = function(d, p, v) {
12596
+ v <<= p & 7;
12597
+ var o = p / 8 | 0;
12598
+ d[o] |= v;
12599
+ d[o + 1] |= v >> 8;
12600
+ };
12601
+ var wbits16 = function(d, p, v) {
12602
+ v <<= p & 7;
12603
+ var o = p / 8 | 0;
12604
+ d[o] |= v;
12605
+ d[o + 1] |= v >> 8;
12606
+ d[o + 2] |= v >> 16;
12607
+ };
12608
+ var hTree = function(d, mb) {
12609
+ var t = [];
12610
+ for (var i2 = 0; i2 < d.length; ++i2) {
12611
+ if (d[i2])
12612
+ t.push({ s: i2, f: d[i2] });
12613
+ }
12614
+ var s = t.length;
12615
+ var t2 = t.slice();
12616
+ if (!s)
12617
+ return { t: et, l: 0 };
12618
+ if (s == 1) {
12619
+ var v = new u82(t[0].s + 1);
12620
+ v[t[0].s] = 1;
12621
+ return { t: v, l: 1 };
12622
+ }
12623
+ t.sort(function(a, b) {
12624
+ return a.f - b.f;
12625
+ });
12626
+ t.push({ s: -1, f: 25001 });
12627
+ var l = t[0], r = t[1], i0 = 0, i1 = 1, i22 = 2;
12628
+ t[0] = { s: -1, f: l.f + r.f, l, r };
12629
+ while (i1 != s - 1) {
12630
+ l = t[t[i0].f < t[i22].f ? i0++ : i22++];
12631
+ r = t[i0 != i1 && t[i0].f < t[i22].f ? i0++ : i22++];
12632
+ t[i1++] = { s: -1, f: l.f + r.f, l, r };
12633
+ }
12634
+ var maxSym = t2[0].s;
12635
+ for (var i2 = 1; i2 < s; ++i2) {
12636
+ if (t2[i2].s > maxSym)
12637
+ maxSym = t2[i2].s;
12638
+ }
12639
+ var tr = new u16(maxSym + 1);
12640
+ var mbt = ln(t[i1 - 1], tr, 0);
12641
+ if (mbt > mb) {
12642
+ var i2 = 0, dt = 0;
12643
+ var lft = mbt - mb, cst = 1 << lft;
12644
+ t2.sort(function(a, b) {
12645
+ return tr[b.s] - tr[a.s] || a.f - b.f;
12646
+ });
12647
+ for (; i2 < s; ++i2) {
12648
+ var i2_1 = t2[i2].s;
12649
+ if (tr[i2_1] > mb) {
12650
+ dt += cst - (1 << mbt - tr[i2_1]);
12651
+ tr[i2_1] = mb;
12652
+ } else
12653
+ break;
12654
+ }
12655
+ dt >>= lft;
12656
+ while (dt > 0) {
12657
+ var i2_2 = t2[i2].s;
12658
+ if (tr[i2_2] < mb)
12659
+ dt -= 1 << mb - tr[i2_2]++ - 1;
12660
+ else
12661
+ ++i2;
12662
+ }
12663
+ for (; i2 >= 0 && dt; --i2) {
12664
+ var i2_3 = t2[i2].s;
12665
+ if (tr[i2_3] == mb) {
12666
+ --tr[i2_3];
12667
+ ++dt;
12668
+ }
12669
+ }
12670
+ mbt = mb;
12671
+ }
12672
+ return { t: new u82(tr), l: mbt };
12673
+ };
12674
+ var ln = function(n, l, d) {
12675
+ return n.s == -1 ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1)) : l[n.s] = d;
12676
+ };
12677
+ var lc = function(c) {
12678
+ var s = c.length;
12679
+ while (s && !c[--s])
12680
+ ;
12681
+ var cl = new u16(++s);
12682
+ var cli = 0, cln = c[0], cls = 1;
12683
+ var w = function(v) {
12684
+ cl[cli++] = v;
12685
+ };
12686
+ for (var i2 = 1; i2 <= s; ++i2) {
12687
+ if (c[i2] == cln && i2 != s)
12688
+ ++cls;
12689
+ else {
12690
+ if (!cln && cls > 2) {
12691
+ for (; cls > 138; cls -= 138)
12692
+ w(32754);
12693
+ if (cls > 2) {
12694
+ w(cls > 10 ? cls - 11 << 5 | 28690 : cls - 3 << 5 | 12305);
12695
+ cls = 0;
12696
+ }
12697
+ } else if (cls > 3) {
12698
+ w(cln), --cls;
12699
+ for (; cls > 6; cls -= 6)
12700
+ w(8304);
12701
+ if (cls > 2)
12702
+ w(cls - 3 << 5 | 8208), cls = 0;
12703
+ }
12704
+ while (cls--)
12705
+ w(cln);
12706
+ cls = 1;
12707
+ cln = c[i2];
12708
+ }
12709
+ }
12710
+ return { c: cl.subarray(0, cli), n: s };
12711
+ };
12712
+ var clen = function(cf, cl) {
12713
+ var l = 0;
12714
+ for (var i2 = 0; i2 < cl.length; ++i2)
12715
+ l += cf[i2] * cl[i2];
12716
+ return l;
12717
+ };
12718
+ var wfblk = function(out, pos, dat) {
12719
+ var s = dat.length;
12720
+ var o = shft(pos + 2);
12721
+ out[o] = s & 255;
12722
+ out[o + 1] = s >> 8;
12723
+ out[o + 2] = out[o] ^ 255;
12724
+ out[o + 3] = out[o + 1] ^ 255;
12725
+ for (var i2 = 0; i2 < s; ++i2)
12726
+ out[o + i2 + 4] = dat[i2];
12727
+ return (o + 4 + s) * 8;
12728
+ };
12729
+ var wblk = function(dat, out, final, syms, lf, df, eb, li, bs, bl, p) {
12730
+ wbits(out, p++, final);
12731
+ ++lf[256];
12732
+ var _a2 = hTree(lf, 15), dlt = _a2.t, mlb = _a2.l;
12733
+ var _b2 = hTree(df, 15), ddt = _b2.t, mdb = _b2.l;
12734
+ var _c = lc(dlt), lclt = _c.c, nlc = _c.n;
12735
+ var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;
12736
+ var lcfreq = new u16(19);
12737
+ for (var i2 = 0; i2 < lclt.length; ++i2)
12738
+ ++lcfreq[lclt[i2] & 31];
12739
+ for (var i2 = 0; i2 < lcdt.length; ++i2)
12740
+ ++lcfreq[lcdt[i2] & 31];
12741
+ var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;
12742
+ var nlcc = 19;
12743
+ for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)
12744
+ ;
12745
+ var flen = bl + 5 << 3;
12746
+ var ftlen = clen(lf, flt) + clen(df, fdt) + eb;
12747
+ var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];
12748
+ if (bs >= 0 && flen <= ftlen && flen <= dtlen)
12749
+ return wfblk(out, p, dat.subarray(bs, bs + bl));
12750
+ var lm, ll, dm, dl;
12751
+ wbits(out, p, 1 + (dtlen < ftlen)), p += 2;
12752
+ if (dtlen < ftlen) {
12753
+ lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;
12754
+ var llm = hMap(lct, mlcb, 0);
12755
+ wbits(out, p, nlc - 257);
12756
+ wbits(out, p + 5, ndc - 1);
12757
+ wbits(out, p + 10, nlcc - 4);
12758
+ p += 14;
12759
+ for (var i2 = 0; i2 < nlcc; ++i2)
12760
+ wbits(out, p + 3 * i2, lct[clim[i2]]);
12761
+ p += 3 * nlcc;
12762
+ var lcts = [lclt, lcdt];
12763
+ for (var it = 0; it < 2; ++it) {
12764
+ var clct = lcts[it];
12765
+ for (var i2 = 0; i2 < clct.length; ++i2) {
12766
+ var len = clct[i2] & 31;
12767
+ wbits(out, p, llm[len]), p += lct[len];
12768
+ if (len > 15)
12769
+ wbits(out, p, clct[i2] >> 5 & 127), p += clct[i2] >> 12;
12770
+ }
12771
+ }
12772
+ } else {
12773
+ lm = flm, ll = flt, dm = fdm, dl = fdt;
12774
+ }
12775
+ for (var i2 = 0; i2 < li; ++i2) {
12776
+ var sym = syms[i2];
12777
+ if (sym > 255) {
12778
+ var len = sym >> 18 & 31;
12779
+ wbits16(out, p, lm[len + 257]), p += ll[len + 257];
12780
+ if (len > 7)
12781
+ wbits(out, p, sym >> 23 & 31), p += fleb[len];
12782
+ var dst = sym & 31;
12783
+ wbits16(out, p, dm[dst]), p += dl[dst];
12784
+ if (dst > 3)
12785
+ wbits16(out, p, sym >> 5 & 8191), p += fdeb[dst];
12786
+ } else {
12787
+ wbits16(out, p, lm[sym]), p += ll[sym];
12788
+ }
12789
+ }
12790
+ wbits16(out, p, lm[256]);
12791
+ return p + ll[256];
12792
+ };
12793
+ var deo = /* @__PURE__ */ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);
12415
12794
  var et = /* @__PURE__ */ new u82(0);
12795
+ var dflt = function(dat, lvl, plvl, pre, post, st) {
12796
+ var s = st.z || dat.length;
12797
+ var o = new u82(pre + s + 5 * (1 + Math.ceil(s / 7e3)) + post);
12798
+ var w = o.subarray(pre, o.length - post);
12799
+ var lst = st.l;
12800
+ var pos = (st.r || 0) & 7;
12801
+ if (lvl) {
12802
+ if (pos)
12803
+ w[0] = st.r >> 3;
12804
+ var opt = deo[lvl - 1];
12805
+ var n = opt >> 13, c = opt & 8191;
12806
+ var msk_1 = (1 << plvl) - 1;
12807
+ var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);
12808
+ var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;
12809
+ var hsh = function(i3) {
12810
+ return (dat[i3] ^ dat[i3 + 1] << bs1_1 ^ dat[i3 + 2] << bs2_1) & msk_1;
12811
+ };
12812
+ var syms = new i32(25e3);
12813
+ var lf = new u16(288), df = new u16(32);
12814
+ var lc_1 = 0, eb = 0, i2 = st.i || 0, li = 0, wi = st.w || 0, bs = 0;
12815
+ for (; i2 + 2 < s; ++i2) {
12816
+ var hv = hsh(i2);
12817
+ var imod = i2 & 32767, pimod = head[hv];
12818
+ prev[imod] = pimod;
12819
+ head[hv] = imod;
12820
+ if (wi <= i2) {
12821
+ var rem = s - i2;
12822
+ if ((lc_1 > 7e3 || li > 24576) && (rem > 423 || !lst)) {
12823
+ pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i2 - bs, pos);
12824
+ li = lc_1 = eb = 0, bs = i2;
12825
+ for (var j = 0; j < 286; ++j)
12826
+ lf[j] = 0;
12827
+ for (var j = 0; j < 30; ++j)
12828
+ df[j] = 0;
12829
+ }
12830
+ var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;
12831
+ if (rem > 2 && hv == hsh(i2 - dif)) {
12832
+ var maxn = Math.min(n, rem) - 1;
12833
+ var maxd = Math.min(32767, i2);
12834
+ var ml = Math.min(258, rem);
12835
+ while (dif <= maxd && --ch_1 && imod != pimod) {
12836
+ if (dat[i2 + l] == dat[i2 + l - dif]) {
12837
+ var nl = 0;
12838
+ for (; nl < ml && dat[i2 + nl] == dat[i2 + nl - dif]; ++nl)
12839
+ ;
12840
+ if (nl > l) {
12841
+ l = nl, d = dif;
12842
+ if (nl > maxn)
12843
+ break;
12844
+ var mmd = Math.min(dif, nl - 2);
12845
+ var md = 0;
12846
+ for (var j = 0; j < mmd; ++j) {
12847
+ var ti = i2 - dif + j & 32767;
12848
+ var pti = prev[ti];
12849
+ var cd = ti - pti & 32767;
12850
+ if (cd > md)
12851
+ md = cd, pimod = ti;
12852
+ }
12853
+ }
12854
+ }
12855
+ imod = pimod, pimod = prev[imod];
12856
+ dif += imod - pimod & 32767;
12857
+ }
12858
+ }
12859
+ if (d) {
12860
+ syms[li++] = 268435456 | revfl[l] << 18 | revfd[d];
12861
+ var lin = revfl[l] & 31, din = revfd[d] & 31;
12862
+ eb += fleb[lin] + fdeb[din];
12863
+ ++lf[257 + lin];
12864
+ ++df[din];
12865
+ wi = i2 + l;
12866
+ ++lc_1;
12867
+ } else {
12868
+ syms[li++] = dat[i2];
12869
+ ++lf[dat[i2]];
12870
+ }
12871
+ }
12872
+ }
12873
+ for (i2 = Math.max(i2, wi); i2 < s; ++i2) {
12874
+ syms[li++] = dat[i2];
12875
+ ++lf[dat[i2]];
12876
+ }
12877
+ pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i2 - bs, pos);
12878
+ if (!lst) {
12879
+ st.r = pos & 7 | w[pos / 8 | 0] << 3;
12880
+ pos -= 7;
12881
+ st.h = head, st.p = prev, st.i = i2, st.w = wi;
12882
+ }
12883
+ } else {
12884
+ for (var i2 = st.w || 0; i2 < s + lst; i2 += 65535) {
12885
+ var e = i2 + 65535;
12886
+ if (e >= s) {
12887
+ w[pos / 8 | 0] = lst;
12888
+ e = s;
12889
+ }
12890
+ pos = wfblk(w, pos + 1, dat.subarray(i2, e));
12891
+ }
12892
+ st.i = s;
12893
+ }
12894
+ return slc(o, 0, pre + shft(pos) + post);
12895
+ };
12896
+ var crct = /* @__PURE__ */ (function() {
12897
+ var t = new Int32Array(256);
12898
+ for (var i2 = 0; i2 < 256; ++i2) {
12899
+ var c = i2, k = 9;
12900
+ while (--k)
12901
+ c = (c & 1 && -306674912) ^ c >>> 1;
12902
+ t[i2] = c;
12903
+ }
12904
+ return t;
12905
+ })();
12906
+ var crc = function() {
12907
+ var c = -1;
12908
+ return {
12909
+ p: function(d) {
12910
+ var cr = c;
12911
+ for (var i2 = 0; i2 < d.length; ++i2)
12912
+ cr = crct[cr & 255 ^ d[i2]] ^ cr >>> 8;
12913
+ c = cr;
12914
+ },
12915
+ d: function() {
12916
+ return ~c;
12917
+ }
12918
+ };
12919
+ };
12920
+ var dopt = function(dat, opt, pre, post, st) {
12921
+ if (!st) {
12922
+ st = { l: 1 };
12923
+ if (opt.dictionary) {
12924
+ var dict = opt.dictionary.subarray(-32768);
12925
+ var newDat = new u82(dict.length + dat.length);
12926
+ newDat.set(dict);
12927
+ newDat.set(dat, dict.length);
12928
+ dat = newDat;
12929
+ st.w = dict.length;
12930
+ }
12931
+ }
12932
+ return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20 : 12 + opt.mem, pre, post, st);
12933
+ };
12934
+ var mrg = function(a, b) {
12935
+ var o = {};
12936
+ for (var k in a)
12937
+ o[k] = a[k];
12938
+ for (var k in b)
12939
+ o[k] = b[k];
12940
+ return o;
12941
+ };
12942
+ var wbytes = function(d, b, v) {
12943
+ for (; v; ++b)
12944
+ d[b] = v, v >>>= 8;
12945
+ };
12946
+ function deflateSync(data, opts) {
12947
+ return dopt(data, opts || {}, 0, 0);
12948
+ }
12416
12949
  var Inflate = /* @__PURE__ */ (function() {
12417
12950
  function Inflate2(opts, cb) {
12418
12951
  if (typeof opts == "function")
@@ -12450,6 +12983,20 @@ var Inflate = /* @__PURE__ */ (function() {
12450
12983
  };
12451
12984
  return Inflate2;
12452
12985
  })();
12986
+ var fltn = function(d, p, t, o) {
12987
+ for (var k in d) {
12988
+ var val = d[k], n = p + k, op2 = o;
12989
+ if (Array.isArray(val))
12990
+ op2 = mrg(o, val[1]), val = val[0];
12991
+ if (ArrayBuffer.isView(val))
12992
+ t[n] = [val, op2];
12993
+ else {
12994
+ t[n += "/"] = [new u82(0), op2];
12995
+ fltn(val, n, t, o);
12996
+ }
12997
+ }
12998
+ };
12999
+ var te = typeof TextEncoder != "undefined" && /* @__PURE__ */ new TextEncoder();
12453
13000
  var td = typeof TextDecoder != "undefined" && /* @__PURE__ */ new TextDecoder();
12454
13001
  var tds = 0;
12455
13002
  try {
@@ -12457,6 +13004,140 @@ try {
12457
13004
  tds = 1;
12458
13005
  } catch (e) {
12459
13006
  }
13007
+ function strToU8(str, latin1) {
13008
+ if (latin1) {
13009
+ var ar_1 = new u82(str.length);
13010
+ for (var i2 = 0; i2 < str.length; ++i2)
13011
+ ar_1[i2] = str.charCodeAt(i2);
13012
+ return ar_1;
13013
+ }
13014
+ if (te)
13015
+ return te.encode(str);
13016
+ var l = str.length;
13017
+ var ar = new u82(str.length + (str.length >> 1));
13018
+ var ai = 0;
13019
+ var w = function(v) {
13020
+ ar[ai++] = v;
13021
+ };
13022
+ for (var i2 = 0; i2 < l; ++i2) {
13023
+ if (ai + 5 > ar.length) {
13024
+ var n = new u82(ai + 8 + (l - i2 << 1));
13025
+ n.set(ar);
13026
+ ar = n;
13027
+ }
13028
+ var c = str.charCodeAt(i2);
13029
+ if (c < 128 || latin1)
13030
+ w(c);
13031
+ else if (c < 2048)
13032
+ w(192 | c >> 6), w(128 | c & 63);
13033
+ else if (c > 55295 && c < 57344)
13034
+ c = 65536 + (c & 1023 << 10) | str.charCodeAt(++i2) & 1023, w(240 | c >> 18), w(128 | c >> 12 & 63), w(128 | c >> 6 & 63), w(128 | c & 63);
13035
+ else
13036
+ w(224 | c >> 12), w(128 | c >> 6 & 63), w(128 | c & 63);
13037
+ }
13038
+ return slc(ar, 0, ai);
13039
+ }
13040
+ var exfl = function(ex) {
13041
+ var le = 0;
13042
+ if (ex) {
13043
+ for (var k in ex) {
13044
+ var l = ex[k].length;
13045
+ if (l > 65535)
13046
+ err(9);
13047
+ le += l + 4;
13048
+ }
13049
+ }
13050
+ return le;
13051
+ };
13052
+ var wzh = function(d, b, f, fn, u, c, ce, co) {
13053
+ var fl2 = fn.length, ex = f.extra, col = co && co.length;
13054
+ var exl = exfl(ex);
13055
+ wbytes(d, b, ce != null ? 33639248 : 67324752), b += 4;
13056
+ if (ce != null)
13057
+ d[b++] = 20, d[b++] = f.os;
13058
+ d[b] = 20, b += 2;
13059
+ d[b++] = f.flag << 1 | (c < 0 && 8), d[b++] = u && 8;
13060
+ d[b++] = f.compression & 255, d[b++] = f.compression >> 8;
13061
+ var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;
13062
+ if (y < 0 || y > 119)
13063
+ err(10);
13064
+ wbytes(d, b, y << 25 | dt.getMonth() + 1 << 21 | dt.getDate() << 16 | dt.getHours() << 11 | dt.getMinutes() << 5 | dt.getSeconds() >> 1), b += 4;
13065
+ if (c != -1) {
13066
+ wbytes(d, b, f.crc);
13067
+ wbytes(d, b + 4, c < 0 ? -c - 2 : c);
13068
+ wbytes(d, b + 8, f.size);
13069
+ }
13070
+ wbytes(d, b + 12, fl2);
13071
+ wbytes(d, b + 14, exl), b += 16;
13072
+ if (ce != null) {
13073
+ wbytes(d, b, col);
13074
+ wbytes(d, b + 6, f.attrs);
13075
+ wbytes(d, b + 10, ce), b += 14;
13076
+ }
13077
+ d.set(fn, b);
13078
+ b += fl2;
13079
+ if (exl) {
13080
+ for (var k in ex) {
13081
+ var exf = ex[k], l = exf.length;
13082
+ wbytes(d, b, +k);
13083
+ wbytes(d, b + 2, l);
13084
+ d.set(exf, b + 4), b += 4 + l;
13085
+ }
13086
+ }
13087
+ if (col)
13088
+ d.set(co, b), b += col;
13089
+ return b;
13090
+ };
13091
+ var wzf = function(o, b, c, d, e) {
13092
+ wbytes(o, b, 101010256);
13093
+ wbytes(o, b + 8, c);
13094
+ wbytes(o, b + 10, c);
13095
+ wbytes(o, b + 12, d);
13096
+ wbytes(o, b + 16, e);
13097
+ };
13098
+ function zipSync(data, opts) {
13099
+ if (!opts)
13100
+ opts = {};
13101
+ var r = {};
13102
+ var files = [];
13103
+ fltn(data, "", r, opts);
13104
+ var o = 0;
13105
+ var tot = 0;
13106
+ for (var fn in r) {
13107
+ var _a2 = r[fn], file = _a2[0], p = _a2[1];
13108
+ var compression = p.level == 0 ? 0 : 8;
13109
+ var f = strToU8(fn), s = f.length;
13110
+ var com = p.comment, m = com && strToU8(com), ms = m && m.length;
13111
+ var exl = exfl(p.extra);
13112
+ if (s > 65535)
13113
+ err(11);
13114
+ var d = compression ? deflateSync(file, p) : file, l = d.length;
13115
+ var c = crc();
13116
+ c.p(file);
13117
+ files.push(mrg(p, {
13118
+ size: file.length,
13119
+ crc: c.d(),
13120
+ c: d,
13121
+ f,
13122
+ m,
13123
+ u: s != fn.length || m && com.length != ms,
13124
+ o,
13125
+ compression
13126
+ }));
13127
+ o += 30 + s + exl + l;
13128
+ tot += 76 + 2 * (s + exl) + (ms || 0) + l;
13129
+ }
13130
+ var out = new u82(tot + 22), oe = o, cdl = tot - o;
13131
+ for (var i2 = 0; i2 < files.length; ++i2) {
13132
+ var f = files[i2];
13133
+ wzh(out, f.o, f, f.f, f.u, f.c.length);
13134
+ var badd = 30 + f.f.length + exfl(f.extra);
13135
+ out.set(f.c, f.o + badd);
13136
+ wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);
13137
+ }
13138
+ wzf(out, o, files.length, cdl, oe);
13139
+ return out;
13140
+ }
12460
13141
 
12461
13142
  // src/runtime/rsa.ts
12462
13143
  init_buffer();
@@ -12570,14 +13251,14 @@ for (let i2 = 0; i2 < 256; i2++) {
12570
13251
  table32[i2] = b;
12571
13252
  }
12572
13253
  var crc16 = (data, initial = 65535) => {
12573
- let crc = initial;
12574
- for (const byte of data) crc = crc >>> 8 ^ table16[(crc ^ byte) & 255];
12575
- return crc;
13254
+ let crc2 = initial;
13255
+ for (const byte of data) crc2 = crc2 >>> 8 ^ table16[(crc2 ^ byte) & 255];
13256
+ return crc2;
12576
13257
  };
12577
13258
  var crc32 = (data) => {
12578
- let crc = 4294967295;
12579
- for (const byte of data) crc = crc >>> 8 ^ table32[(crc ^ byte) & 255];
12580
- return (crc ^ 4294967295) >>> 0;
13259
+ let crc2 = 4294967295;
13260
+ for (const byte of data) crc2 = crc2 >>> 8 ^ table32[(crc2 ^ byte) & 255];
13261
+ return (crc2 ^ 4294967295) >>> 0;
12581
13262
  };
12582
13263
 
12583
13264
  // src/nitro/banner.ts
@@ -14839,6 +15520,293 @@ var extractZipEntry = (input, entryName, options = {}) => {
14839
15520
  return entry;
14840
15521
  };
14841
15522
 
15523
+ // src/patch/create.ts
15524
+ init_buffer();
15525
+ var import_xdelta3_wasm = __toESM(require_dist(), 1);
15526
+ var normalizePath = (path) => path.replaceAll("\\", "/").toLowerCase();
15527
+ var listFiles = (rom) => new Map(rom.listFiles().map((file) => [normalizePath(file.path), file]));
15528
+ var listDirectories = (folder, prefix = "data") => [prefix, ...folder.folders.flatMap((child) => listDirectories(child, `${prefix}/${child.name}`))].sort();
15529
+ var getUnnamedFiles = (rom) => {
15530
+ const namedIds = new Set(
15531
+ rom.listFiles().filter((file) => /^(data|overlay)\//i.test(file.path)).map((file) => file.id)
15532
+ );
15533
+ return rom.fatTable.entries.filter((entry) => !namedIds.has(entry.id)).map((entry) => rom.original.subarray(entry.offset, entry.offset + entry.size));
15534
+ };
15535
+ var normalizeHeader = (rom) => {
15536
+ const header = new Header(rom.getFile("header.bin"));
15537
+ header.size = 131072;
15538
+ for (const field2 of [
15539
+ "ARM9romOffset",
15540
+ "ARM9size",
15541
+ "ARM7romOffset",
15542
+ "ARM7size",
15543
+ "FNToffset",
15544
+ "FNTsize",
15545
+ "FAToffset",
15546
+ "FATsize",
15547
+ "ARM9overlayOffset",
15548
+ "ARM9overlaySize",
15549
+ "ARM7overlayOffset",
15550
+ "ARM7overlaySize",
15551
+ "bannerOffset",
15552
+ "secureCRC16",
15553
+ "ROMsize",
15554
+ "logoCRC16",
15555
+ "headerCRC16"
15556
+ ])
15557
+ header[field2] = 0;
15558
+ if (header.unitCode === 2) {
15559
+ for (const field2 of [
15560
+ "ntr_region_end",
15561
+ "twl_region_start",
15562
+ "dsi9_rom_offset",
15563
+ "dsi7_rom_offset",
15564
+ "digest_ntr_start",
15565
+ "digest_ntr_size",
15566
+ "digest_twl_start",
15567
+ "digest_twl_size",
15568
+ "sector_hashtable_start",
15569
+ "sector_hashtable_size",
15570
+ "block_hashtable_start",
15571
+ "block_hashtable_size",
15572
+ "total_rom_size",
15573
+ "modcrypt1_start",
15574
+ "modcrypt1_size",
15575
+ "modcrypt2_start",
15576
+ "modcrypt2_size"
15577
+ ])
15578
+ header[field2] = 0;
15579
+ for (const field2 of [
15580
+ "hmac_arm9",
15581
+ "hmac_arm7",
15582
+ "hmac_digest_master",
15583
+ "hmac_icon_title",
15584
+ "hmac_arm9i",
15585
+ "hmac_arm7i",
15586
+ "hmac_arm9_no_secure",
15587
+ "rsa_signature"
15588
+ ])
15589
+ header[field2] = import_buffer.Buffer.alloc(header[field2].length);
15590
+ }
15591
+ return header.raw;
15592
+ };
15593
+ var compareContent = (actual, expected, path, warnings) => {
15594
+ if (!actual.equals(expected)) warnings.push(`\u91CD\u5EFA\u5185\u5BB9\u4E0E\u4FEE\u6539\u540E\u7684 ROM \u4E0D\u540C\uFF1A${path}`);
15595
+ };
15596
+ var errorMessage = (reason) => reason instanceof Error ? reason.message : String(reason);
15597
+ var parseRom = (input, label, warnings) => {
15598
+ try {
15599
+ const rom = new NDSFile(input, { dsiMode: "complete" });
15600
+ rom.listFiles();
15601
+ return rom;
15602
+ } catch (reason) {
15603
+ try {
15604
+ const rom = new NDSFile(input);
15605
+ rom.listFiles();
15606
+ warnings.push(`${label} \u4F7F\u7528\u5E38\u89C4\u6A21\u5F0F\u89E3\u6790\uFF1A${errorMessage(reason)}`);
15607
+ return rom;
15608
+ } catch (error) {
15609
+ throw new Error(`\u65E0\u6CD5\u89E3\u6790${label}\uFF1A${errorMessage(error)}`, { cause: error });
15610
+ }
15611
+ }
15612
+ };
15613
+ var createDelta = async (before, after) => {
15614
+ const chunks = [];
15615
+ async function* targetChunks() {
15616
+ yield after;
15617
+ }
15618
+ for await (const chunk of (0, import_xdelta3_wasm.encode)(targetChunks(), {
15619
+ size: before.length,
15620
+ read(offset, into) {
15621
+ const part = before.subarray(offset, offset + into.length);
15622
+ into.set(part);
15623
+ return part.length;
15624
+ }
15625
+ }))
15626
+ chunks.push(import_buffer.Buffer.from(chunk));
15627
+ return import_buffer.Buffer.concat(chunks);
15628
+ };
15629
+ var verifyContent = (actual, expected, arm9, warnings) => {
15630
+ const actualFiles = listFiles(actual);
15631
+ const expectedFiles = listFiles(expected);
15632
+ if ([...actualFiles.keys()].sort().join("\n") !== [...expectedFiles.keys()].sort().join("\n"))
15633
+ warnings.push("\u91CD\u5EFA ROM \u7684\u6587\u4EF6\u8DEF\u5F84\u96C6\u5408\u4E0E\u4FEE\u6539\u540E\u7684 ROM \u4E0D\u540C\u3002");
15634
+ const actualDirectories = new Set(listDirectories(actual.data));
15635
+ const expectedDirectories = new Set(listDirectories(expected.data));
15636
+ for (const path of expectedDirectories)
15637
+ if (!actualDirectories.has(path)) {
15638
+ if ([...expectedFiles.keys()].some((name) => name.startsWith(normalizePath(`${path}/`))))
15639
+ warnings.push(`\u91CD\u5EFA ROM \u7F3A\u5C11\u76EE\u5F55\uFF1A${path}`);
15640
+ else warnings.push(`\u65B0\u589E\u7A7A\u76EE\u5F55\u5DF2\u5FFD\u7565\uFF1A${path}`);
15641
+ }
15642
+ for (const path of actualDirectories)
15643
+ if (!expectedDirectories.has(path)) {
15644
+ if ([...actualFiles.keys()].some((name) => name.startsWith(normalizePath(`${path}/`))))
15645
+ warnings.push(`\u91CD\u5EFA ROM \u4FDD\u7559\u4E86\u539F\u59CB\u76EE\u5F55\uFF1A${path}`);
15646
+ else warnings.push(`\u5DF2\u4FDD\u7559\u539F\u59CB ROM \u7684\u7A7A\u76EE\u5F55\uFF1A${path}`);
15647
+ }
15648
+ for (const [path, file] of expectedFiles) {
15649
+ if (["header.bin", "fnt.bin", "fat.bin", "banner.bin", "overarm9.bin", "overarm7.bin"].includes(path)) continue;
15650
+ if (!actualFiles.has(path)) continue;
15651
+ let content = path === "arm9.bin" ? import_buffer.Buffer.from(arm9) : expected.getFile(file.path);
15652
+ if (path === "arm9.bin" && expected.header.unitCode === 2) {
15653
+ const plain = expected.header.decrypted ? content : decryptSecureArea(expected.header.gameCode, content);
15654
+ plain.writeUInt16LE(crc16(plain.subarray(16, 2048)), 14);
15655
+ content = expected.header.decrypted ? plain : encryptSecureArea(expected.header.gameCode, plain);
15656
+ }
15657
+ compareContent(actual.getFile(file.path), content, file.path, warnings);
15658
+ }
15659
+ compareContent(actual.banner.toBuffer(), expected.banner.toBuffer(), "banner.bin", warnings);
15660
+ compareContent(normalizeHeader(actual), normalizeHeader(expected), "header.bin", warnings);
15661
+ compareContent(actual.header.dlp_signature, expected.header.dlp_signature, "Download Play \u7B7E\u540D", warnings);
15662
+ for (const [left, right] of [
15663
+ [actual.overlay9Table, expected.overlay9Table],
15664
+ [actual.overlay7Table, expected.overlay7Table]
15665
+ ]) {
15666
+ if (left.entries.length !== right.entries.length) warnings.push("\u91CD\u5EFA ROM \u7684\u8986\u76D6\u6A21\u5757\u6570\u91CF\u4E0E\u4FEE\u6539\u540E\u7684 ROM \u4E0D\u540C\u3002");
15667
+ for (const entry of right.entries) {
15668
+ const other = left.entries.find((item) => item.overlayId === entry.overlayId);
15669
+ if (!other) {
15670
+ warnings.push(`\u91CD\u5EFA ROM \u7F3A\u5C11\u8986\u76D6\u6A21\u5757\uFF1A${entry.overlayId}`);
15671
+ continue;
15672
+ }
15673
+ for (const field2 of [
15674
+ "ramAddress",
15675
+ "ramSize",
15676
+ "bssSize",
15677
+ "staticInitialiserStartAddress",
15678
+ "staticInitialiserEndAddress",
15679
+ "reserved"
15680
+ ])
15681
+ if (other[field2] !== entry[field2])
15682
+ warnings.push(`\u91CD\u5EFA\u8986\u76D6\u6A21\u5757 ${entry.overlayId} \u7684 ${field2} \u4E0E\u4FEE\u6539\u540E\u7684 ROM \u4E0D\u540C\u3002`);
15683
+ }
15684
+ }
15685
+ const actualUnnamed = getUnnamedFiles(actual);
15686
+ const expectedUnnamed = getUnnamedFiles(expected);
15687
+ if (actualUnnamed.length !== expectedUnnamed.length)
15688
+ warnings.push("\u91CD\u5EFA ROM \u7684\u672A\u547D\u540D FAT \u9879\u6570\u91CF\u4E0E\u4FEE\u6539\u540E\u7684 ROM \u4E0D\u540C\u3002");
15689
+ actualUnnamed.forEach((content, index) => {
15690
+ if (expectedUnnamed[index]) compareContent(content, expectedUnnamed[index], `\u672A\u547D\u540D FAT \u9879 ${index}`, warnings);
15691
+ });
15692
+ if (actual.header.unitCode === 2) {
15693
+ for (const [name, check2] of Object.entries(actual.verifyDsi()))
15694
+ if (check2.status === "invalid") warnings.push(`\u91CD\u5EFA ROM \u7684 DSi \u6821\u9A8C\u7ED3\u679C\u4E3A invalid\uFF1A${name}`);
15695
+ }
15696
+ };
15697
+ var verifyPatch = (input, archive, target, arm9, options, warnings) => {
15698
+ let output;
15699
+ try {
15700
+ output = patchBuffer(input, archive, options).buffer;
15701
+ } catch (reason) {
15702
+ warnings.push(`\u8865\u4E01\u5E94\u7528\u68C0\u67E5\u672A\u5B8C\u6210\uFF1A${errorMessage(reason)}`);
15703
+ return false;
15704
+ }
15705
+ try {
15706
+ verifyContent(parseRom(output, "\u91CD\u5EFA ROM", warnings), target, arm9, warnings);
15707
+ } catch (reason) {
15708
+ warnings.push(`\u8865\u4E01\u6570\u636E\u6838\u5BF9\u672A\u5B8C\u6210\uFF1A${errorMessage(reason)}`);
15709
+ }
15710
+ return true;
15711
+ };
15712
+ var createPatch = async (original, modified, options = {}) => {
15713
+ const input = bytes(original, "original ROM");
15714
+ const targetBytes = bytes(modified, "modified ROM");
15715
+ const warnings = [];
15716
+ const source = parseRom(input, "\u539F\u59CB ROM", warnings);
15717
+ const target = parseRom(targetBytes, "\u4FEE\u6539\u540E\u7684 ROM", warnings);
15718
+ let preprocessing = false;
15719
+ if (source.header.gameCode !== target.header.gameCode)
15720
+ warnings.push(`\u4E24\u4E2A ROM \u7684\u6E38\u620F\u4EE3\u7801\u4E0D\u540C\uFF1A${source.header.gameCode} / ${target.header.gameCode}`);
15721
+ if (source.header.unitCode !== target.header.unitCode)
15722
+ warnings.push(`\u4E24\u4E2A ROM \u7684 unitCode \u4E0D\u540C\uFF1A${source.header.unitCode} / ${target.header.unitCode}`);
15723
+ if (source.header.ROMversion !== target.header.ROMversion)
15724
+ warnings.push(`\u4E24\u4E2A ROM \u7684\u4FEE\u8BA2\u7248\u672C\u4E0D\u540C\uFF1A${source.header.ROMversion} / ${target.header.ROMversion}`);
15725
+ if (source.header.gameCode !== target.header.gameCode || source.header.unitCode !== target.header.unitCode)
15726
+ preprocessing = true;
15727
+ const sourceFiles = listFiles(source);
15728
+ const targetFiles = listFiles(target);
15729
+ const headerChanged = !normalizeHeader(source).equals(normalizeHeader(target));
15730
+ const sourceArm9 = source.getFile("arm9.bin");
15731
+ const targetArm9 = target.getFile("arm9.bin");
15732
+ const sourcePostData = sourceArm9.subarray(source.header.ARM9size);
15733
+ const targetPostData = targetArm9.subarray(target.header.ARM9size);
15734
+ if (!sourcePostData.equals(targetPostData)) warnings.push("\u4E24\u4E2A ROM \u7684 ARM9 \u5C3E\u90E8\u8BB0\u5F55\u4E0D\u540C\u3002");
15735
+ for (const [label, rom, entries2] of [
15736
+ ["\u539F\u59CB ROM", source, sourceFiles],
15737
+ ["\u4FEE\u6539\u540E\u7684 ROM", target, targetFiles]
15738
+ ]) {
15739
+ const file = entries2.get("arm9.bin");
15740
+ const end = file.offset + file.size;
15741
+ if (rom.header.nitrocode && rom.original.subarray(end, end + 4).equals(import_buffer.Buffer.from("2106c0de", "hex")))
15742
+ warnings.push(`${label} \u7684 ARM9 \u542B\u6709\u989D\u5916\u5C3E\u90E8\u8BB0\u5F55\u3002`);
15743
+ }
15744
+ const targetProgram = targetArm9.subarray(0, target.header.ARM9size);
15745
+ const arm9 = sourcePostData.length && targetProgram.subarray(-sourcePostData.length).equals(sourcePostData) ? targetProgram : import_buffer.Buffer.concat([targetProgram, sourcePostData]);
15746
+ const removed = [...sourceFiles.keys()].filter((path) => !targetFiles.has(path));
15747
+ if (removed.length) {
15748
+ warnings.push(`\u4FEE\u6539\u540E\u7684 ROM \u7F3A\u5C11\u539F\u59CB ROM \u4E2D\u7684 ${removed.length} \u4E2A\u6587\u4EF6\u3002`);
15749
+ preprocessing = true;
15750
+ }
15751
+ const sourceUnnamed = getUnnamedFiles(source);
15752
+ const targetUnnamed = getUnnamedFiles(target);
15753
+ if (sourceUnnamed.length !== targetUnnamed.length || sourceUnnamed.some((content, index) => !content.equals(targetUnnamed[index] ?? import_buffer.Buffer.alloc(0)))) {
15754
+ warnings.push("\u4E24\u4E2A ROM \u7684\u672A\u547D\u540D FAT \u6570\u636E\u4E0D\u540C\u3002");
15755
+ preprocessing = true;
15756
+ }
15757
+ const entries = {};
15758
+ let changedFiles = 0;
15759
+ for (const [path, file] of targetFiles) {
15760
+ if (path === "fnt.bin" || path === "fat.bin") continue;
15761
+ if (path === "header.bin" && !headerChanged) continue;
15762
+ const before = sourceFiles.has(path) ? source.getFile(file.path) : import_buffer.Buffer.alloc(0);
15763
+ const after = path === "arm9.bin" ? arm9 : target.getFile(file.path);
15764
+ if (sourceFiles.has(path) && before.equals(after)) continue;
15765
+ if (!sourceFiles.has(path) && !/^(data|overlay)\//.test(path) && !/^overarm[97]\.bin$/.test(path))
15766
+ warnings.push(`\u65B0\u589E\u7CFB\u7EDF\u6587\u4EF6\uFF1A${file.path}`);
15767
+ try {
15768
+ const delta = await createDelta(before, after);
15769
+ if (decodeXdelta(before, delta, options).equals(after)) entries[`xdelta/${file.path}`] = delta;
15770
+ else {
15771
+ warnings.push(`\u6587\u4EF6\u5DEE\u5206\u89E3\u7801\u5185\u5BB9\u4E0D\u540C\uFF0C\u5DF2\u4FDD\u5B58\u5B8C\u6574\u66FF\u6362\u5185\u5BB9\uFF1A${file.path}`);
15772
+ entries[file.path] = after;
15773
+ }
15774
+ } catch (reason) {
15775
+ warnings.push(`\u6587\u4EF6\u5DEE\u5206\u68C0\u67E5\u672A\u5B8C\u6210\uFF0C\u5DF2\u4FDD\u5B58\u5B8C\u6574\u66FF\u6362\u5185\u5BB9\uFF1A${file.path}\uFF1A${errorMessage(reason)}`);
15776
+ entries[file.path] = after;
15777
+ }
15778
+ changedFiles++;
15779
+ }
15780
+ const metadata = { ...options.metadata, formatVersion: 2 };
15781
+ const inputMd5 = hashDigest("md5", input).toString("hex");
15782
+ entries["metadata.json"] = import_buffer.Buffer.from(JSON.stringify(metadata, null, 2));
15783
+ entries["md5.txt"] = import_buffer.Buffer.from(inputMd5);
15784
+ entries["readme.md"] = import_buffer.Buffer.from(options.readme ?? "");
15785
+ let archive = zipSync(entries, { level: 9 });
15786
+ if (!preprocessing) preprocessing = !verifyPatch(input, archive, target, arm9, options, warnings);
15787
+ if (preprocessing) {
15788
+ try {
15789
+ const delta = await createDelta(input, targetBytes);
15790
+ const formatVersion = target.header.unitCode & 2 && !target.twl?.complete ? 1 : 2;
15791
+ archive = zipSync(
15792
+ {
15793
+ [`preprocessing/${inputMd5}.xdelta`]: delta,
15794
+ "metadata.json": import_buffer.Buffer.from(JSON.stringify({ ...metadata, formatVersion }, null, 2)),
15795
+ "md5.txt": entries["md5.txt"],
15796
+ "readme.md": entries["readme.md"]
15797
+ },
15798
+ { level: 9 }
15799
+ );
15800
+ changedFiles = 1;
15801
+ warnings.push("\u8865\u4E01\u4F7F\u7528\u6574\u4EFD ROM \u7684\u9884\u5904\u7406\u5DEE\u5206\u4FDD\u5B58\u4FEE\u6539\u3002");
15802
+ verifyPatch(input, archive, target, targetArm9, options, warnings);
15803
+ } catch (reason) {
15804
+ warnings.push(`\u9884\u5904\u7406\u5DEE\u5206\u751F\u6210\u672A\u5B8C\u6210\uFF0C\u5DF2\u4FDD\u7559\u6309\u6587\u4EF6\u8865\u4E01\u5305\uFF1A${errorMessage(reason)}`);
15805
+ }
15806
+ }
15807
+ return { buffer: new Uint8Array(archive), changedFiles, warnings };
15808
+ };
15809
+
14842
15810
  // src/nitro-patch-helper.ts
14843
15811
  var PatchReturnValue = Object.freeze({
14844
15812
  SUCCESS: "SUCCESS",
@@ -15016,6 +15984,7 @@ var PatchHelper = Object.freeze({
15016
15984
  });
15017
15985
 
15018
15986
  // src/browser.ts
15987
+ var createPatch2 = (original, modified, options = {}) => createPatch(original, modified, options);
15019
15988
  var inspectRom = (bytes2, options = {}) => {
15020
15989
  const rom = new NDSFile(bytes2, options);
15021
15990
  return {
@@ -15052,6 +16021,7 @@ var readPatchReadme2 = (archive, options = {}) => readPatchReadme(archive, optio
15052
16021
  var readPatchInfo2 = (archive, options = {}) => readPatchInfo(archive, options);
15053
16022
  var extractZipEntry3 = (archive, entryName, options = {}) => new Uint8Array(extractZipEntry2(archive, entryName, options));
15054
16023
  var PatchHelper2 = Object.freeze({
16024
+ createPatch: createPatch2,
15055
16025
  extractZipEntry: extractZipEntry3,
15056
16026
  patchBuffer: patchBuffer2,
15057
16027
  readPatchInfo: readPatchInfo2,
@@ -15062,6 +16032,7 @@ var NitroHelper = Object.freeze({ inspectRom });
15062
16032
  export {
15063
16033
  NitroHelper,
15064
16034
  PatchHelper2 as PatchHelper,
16035
+ createPatch2 as createPatch,
15065
16036
  extractZipEntry3 as extractZipEntry,
15066
16037
  inspectRom,
15067
16038
  patchBuffer2 as patchBuffer,