vectorjson 0.2.1 → 0.3.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/README.md +101 -1
- package/dist/engine-wasm.generated.d.ts +1 -1
- package/dist/engine.wasm +0 -0
- package/dist/index.d.ts +36 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +4 -4
- package/package.json +2 -2
package/dist/index.js.map
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/js/engine-wasm.generated.ts", "../src/js/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"// AUTO-GENERATED by scripts/embed-wasm.mjs — do not edit\nexport const wasmBase64 = \"AGFzbQEAAAABaRBgAX8Bf2ACf38Bf2AEf39/fwF/YAJ/fwBgBn9/f39/fwF/YAN/f38AYAN/f38Bf2AFf39/f38AYAABf2ABfwBgA39+fgBgAn9+AX9gA39+fwF/YAJ/fwF8YAV/f39/fwF/YAN/f34BfwM9PAAFBQMFCAgJBgkDAAAAAAMAAAAAAQUFBAIHAwMKAQMDCwwJAQ0BAAEBAQIGCAYGAQIIBgUOBAQEAAQKDwQFAXABBQUFAwEAEgYJAX8BQYCAwAALB8QEIAZtZW1vcnkCAAVhbGxvYwAAB2RlYWxsb2MAAw5nZXRfZXJyb3JfY29kZQAFDXN0cmVhbV9jcmVhdGUABg5zdHJlYW1fZGVzdHJveQAHC3N0cmVhbV9mZWVkAAgRc3RyZWFtX2dldF9zdGF0dXMACxVzdHJlYW1fZ2V0X2J1ZmZlcl9wdHIADBRzdHJlYW1fZ2V0X3ZhbHVlX2xlbgANGHN0cmVhbV9nZXRfcmVtYWluaW5nX3B0cgAOGHN0cmVhbV9nZXRfcmVtYWluaW5nX2xlbgAQFXN0cmVhbV9nZXRfYnVmZmVyX2xlbgARFXN0cmVhbV9nZXRfYnVmZmVyX2NhcAASFXN0cmVhbV9yZXNldF9mb3JfbmV4dAATCWRvY19wYXJzZQAUCGRvY19mcmVlACILZG9jX2dldF90YWcAIw5kb2NfZ2V0X251bWJlcgAkE2RvY19yZWFkX3N0cmluZ19yYXcAJRFkb2NfZ2V0X2lucHV0X3B0cgAmDWRvY19nZXRfY291bnQAJw9kb2NfZ2V0X3NyY19wb3MAKBNkb2NfZ2V0X2Nsb3NlX2luZGV4ACkOZG9jX2ZpbmRfZmllbGQAKg1kb2NfYmF0Y2hfcHRyACwSZG9jX2FycmF5X2VsZW1lbnRzAC0PZG9jX29iamVjdF9rZXlzAC4OY2xhc3NpZnlfaW5wdXQALw1nZXRfdmFsdWVfZW5kADESYXV0b2NvbXBsZXRlX2lucHV0ADIOZG9jX2RlZXBfZXF1YWwANAkKAQBBAQsEGDkXGQwCngUK69UEPDcBAn8jAEEQayIBJAAgAUEEakGI3sAAIAAQASABLwEMIQAgASgCBCECIAFBEGokAEEAIAIgABsLfgEBfyMAQTBrIgMkACADIAEpAgA3AwggA0EQaiADQQhqIAIQAiAA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AwRAIAAoAgAgAUGq1arVeiACGyADQQJBACAAKAIEKAIMEQcACwsYACABQQAgBCAEIAIgAyAEIAQQOUEBcRsL7wEBAn8jAEEQayIDJAAgAyACQR9xOgAPQQAhAAJAQX8gAUEEaiIEIAEgBEsbIgFBASACdCICIAEgAksbIgFBAWtnIgJFDQACQEEgIAJrIgJB//8DcUEDayIEQQ1JBEBCASACrYanIQIgBEECdCIEQZzAxgBqIgUoAgAiAUUNASAFIAEgAmpBBGsoAgA2AgAgASEADAILIAFBg4AEakEQdhA4IQAMAQsgBEHQwMYAaiIEKAIAIgFB//8DcUUEQEEBEDgiAUUNASAEIAEgAmo2AgAgASEADAELIAQgASACajYCACABIQALIANBEGokACAAC7ABACMAQRBrIgAkACAAIANBH3E6AA8CQEEgIAJBBGoiAkEBIAN0IgMgAiADSxsiAkEBa2drIgNB//8DcUEDayIEQQ1JBEAgAUIBIAOshqdqQQRrIARBAnRBnMDGAGoiAigCADYCAAwBCyABQgFBICACQYOABGpBEHZBAWtnayICrYanQRB0akEEayACQf//A3FBAnRBhMHGAGoiAigCADYCAAsgAiABNgIAIABBEGokAAs+AQJ/IAAgACgCBCICQQFqNgIEIAIgACgCACIDIAAoAghBA3RqaiABLQAIOgAAIAMgAkEDdGogASkCADcCAAuoEQIJfwR+IwBB8A5rIgMkACAAKAIIQQFqIQogACkDACELAkACQAJAA0AgC0KPzgBYBEADQCALQuMAWARAAkADQCALQgpURQRAIApBAWohCiALQgqAIQsMAQsLIANBCGpBAEHUA/wLACAAKAIQIgctAABBMEYNACAAKAIUIQUDQCAHIQkgCCEEIAUiBkUNAUEAIQJCACELQYDXwAAhBSAGIQgDQCACQRBGIAhBCElyIAIgBGpB+gVOckUEQCALQoDC1y9+IAIgCWopAABCsODAgYOGjJgwfSIMQgp+IAxCCIh8IgxCEIhC/4GAgPAfg0KBgICAgOIJfiAMQv+BgIDwH4NC5ICAgIDI0Ad+fEIgiHwhCyAFQUBrIQUgCEEIayEIIAJBCGohAgwBCwsDQCACIAlqIQcgAiAGRiACQRJLciACIARqIghBgAZKckUEQCALQgp+IActAABBMGutQv8Bg3whCyAFQQhqIQUgAkEBaiECDAELCyADQQhqIAUpAwAgCxAcIAYgAmshBSAIQYEGRw0ACyACIAlqIAYgAmsQHSEHIAAoAhwiBEUEQCAHQQFxDQcMBgsgB0EBcQ0GIAAoAhggBBAdQQFxRQ0FDAYLBSAKQQJqIQogC0LkAIAhCwwBCwsFIApBBGohCiALQpDOAIAhCwwBCwsgACgCHCIFRQ0CIAAoAhghAgJAAkAgBA0AIAIgBWohBwNAIAVFBEBBACEFDAMLIAItAABBMEcNASAFQQFrIQUgAkEBaiECDAALAAsgAiEHCwNAIAchCCAEIQAgBSIGRQRADAQLQQAhAkIAIQtBgNfAACEFIAYhBANAIAJBEEYgBEEISXIgACACakH6BU5yRQRAIAtCgMLXL34gAiAIaikAAEKw4MCBg4aMmDB9IgxCCn4gDEIIiHwiDEIQiEL/gYCA8B+DQoGAgICA4gl+IAxC/4GAgPAfg0LkgICAgMjQB358QiCIfCELIAVBQGshBSAEQQhrIQQgAkEIaiECDAELCwNAIAIgCGohByACIAZGIAJBEktyIAAgAmoiBEGABkpyRQRAIAtCCn4gBy0AAEEwa61C/wGDfCELIAVBCGohBSACQQFqIQIMAQsLIANBCGogBSkDACALEBwgBiACayEFIARBgQZHDQALIAIgCGogBiACaxAdQQFxDQELQYEGIQQMAQsgA0EIakIKQgEQHEGCBiEECwJAAkACQAJ+AkACQCAKIARrIgBBAE4EQCADQQhqIgYgABAeIAYgABAfQQAhBUIAIQsgAygC3AMhCCADKQMIIQ5BACECAkACQCADKALYAyIJDgIHAQALIANBEGohBiADIA43A+ADIANB6ANqIAZByAP8CgAAIAMgCDYCtAcgAyAJNgKwByADIA43A8AHIANB4ANqIAlBAWtB/wFxIgBBA3RqKQMAIQsgA0HIB2ogBkHIA/wKAAAgAyAINgKUCyADIAk2ApALIANBwAdqIAlB/gFqQf8BcUEDdGopAwAhDSALeSIMQgBSDQIMBQsgDiAOeYYhCwwFCyABKQMAIQ4gASgCCCIGQfb/fUgNAUIAIA5CC4hC/////////weDIAZB849+ShshCyAGQfSPfiAGQfSPfkgbQYuAAmqtQjSGDAILIAsgDIYgDUIAIAx9iIQhCyANIAyGIQ0MAgtCACAOQYGAfiAGa62IIAZBwv99SRshC0IACyENIANB6ANqQQBByAP8CwAgA0EBNgKwByADIAtCAYYiDCAMQoCAgICAgIAQhCALQoCAgICAgID4/wCDIA2EIgxQIgAbQgGENwPgAyADQeADaiAEIAprEB4CQEHNdyAMQjSIp0G0CGsgABsgBGoiACAKayIEQQBKBEAgA0HgA2ogBBAfDAELIARBAE4NACADQQhqIAogAGsQHwsgA0HAB2ogA0EIakHYA/wKAAAgA0GYC2ogA0HgA2pB2AP8CgAAQQAhBQJAIAMoApALIgQgAygC6A4iAEsNACAAIARNBEAgBEEDdCECIANBuAdqIQcgA0GQC2ohBANAIAJBCGsiAEF4RgRAQQIhBQwDCyACIAdqKQMAIg0gAiAEaikDACIMVg0CIAAhAiAMIA1YDQALC0EBIQULIAMgBToAvwcCQCABAn4CfgJAAkACQAJAIAZB9v99SARAQgAgDkGBgH4gBmutiCAGQcL/fUkbIQwgAy0AvwciAEEedEEedUEASA0CQgEhDSAAQQNxQQFrDQcMAQsgASAGQYuAAmoiAjYCCCAOQguIIQwgAy0AvwciAEEedEEedUEASA0DQgEgAEEDcUEBaw0EGgwCC0IAIQ0MBQsgDEIBgyENDAQLQgAMAQsgDEIBgwsgDHwiDEL/////////D1gEQCAMQv////////8HgwwBCyABIAZBjIACaiICNgIIQgALNwMAIAJB/g9NDQMgAUIANwMAIAFB/w82AggMAwsgASAMIA18Igw3AwAgASAMQv////////8HVjYCCAwCC0ECIQIgCUECIAlBAksbIQcgAEEDdCADakGIC2ohBCADQaALaiEAAkADQCACIAdGDQEgAyAONwOYCyAAIAZByAP8CgAAIAMgCDYC7A4gAyAJNgLoDiACQQFqIQIgBCkDACEMIARBCGshBCAMUA0ACyACQQFrIQcLIAcgCUkgDUIAUnIhAgsgASAJQQZ0IAkEfyADQZgLaiIAIANBCGpB0AP8CgAAIAMgCDYC7A4gAyAJNgLoDiAJQQFrQf8BcUEDdCAAaikDAHmnQT9xBUEAC2siAEH+B2oiBDYCCCABAn4gC0L/D4MiDEKACFYgDEKACFEgAnFyIAtC/x+DQoAYUXKtIAtCC4h8IgxC/////////w9YBEAgDEL/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qqoAQaDowAALCP////+qqqqqAEGx6MAACwEEAEHQ6MAACxCqqqqqAAAAAAAAAAD/////AEHA6cAACwSqqqqqAEHY6cAACwSqqqqqAEHw6cAACwj/////qqqqqgBBgerAAAsBBABBoOrAAAsQqqqqqgAAAAAAAAAA/////wBBkOvAAAsEqqqqqgBBqOvAAAsEqqqqqgBBwOvAAAsI/////6qqqqoAQdHrwAALAQQAQfDrwAALEKqqqqoAAAAAAAAAAP////8AQeDswAALBKqqqqoAQfjswAALBKqqqqoAQZDtwAALCP////+qqqqqAEGh7cAACwEEAEHA7cAACxCqqqqqAAAAAAAAAAD/////AEGw7sAACwSqqqqqAEHI7sAACwSqqqqqAEHg7sAACwj/////qqqqqgBB8e7AAAsBBABBkO/AAAsQqqqqqgAAAAAAAAAA/////wBBgPDAAAsEqqqqqgBBmPDAAAsEqqqqqgBBsPDAAAsI/////6qqqqoAQcHwwAALAQQAQeDwwAALEKqqqqoAAAAAAAAAAP////8AQdDxwAALBKqqqqoAQejxwAALBKqqqqoAQYDywAALCP////+qqqqqAEGR8sAACwEEAEGw8sAACxCqqqqqAAAAAAAAAAD/////AEGg88AACwSqqqqqAEG488AACwSqqqqqAEHQ88AACwj/////qqqqqgBB4fPAAAsBBABBgPTAAAsQqqqqqgAAAAAAAAAA/////wBB8PTAAAsEqqqqqgBBiPXAAAsEqqqqqgBBoPXAAAsI/////6qqqqoAQbH1wAALAQQAQdD1wAALEKqqqqoAAAAAAAAAAP////8AQcD2wAALBKqqqqoAQdj2wAALBKqqqqoAQfD2wAALCP////+qqqqqAEGB98AACwEEAEGg98AACxCqqqqqAAAAAAAAAAD/////AEGQ+MAACwSqqqqqAEGo+MAACwSqqqqqAEHA+MAACwj/////qqqqqgBB0fjAAAsBBABB8PjAAAsQqqqqqgAAAAAAAAAA/////wBB4PnAAAsEqqqqqgBB+PnAAAsEqqqqqgBBkPrAAAsI/////6qqqqoAQaH6wAALAQQAQcD6wAALEKqqqqoAAAAAAAAAAP////8AQbD7wAALBKqqqqoAQcj7wAALBKqqqqoAQeD7wAALCP////+qqqqqAEHx+8AACwEEAEGQ/MAACxCqqqqqAAAAAAAAAAD/////AEGA/cAACwSqqqqqAEGY/cAACwSqqqqqAEGw/cAACwj/////qqqqqgBBwf3AAAsBBABB4P3AAAsQqqqqqgAAAAAAAAAA/////wBB0P7AAAsEqqqqqgBB6P7AAAsEqqqqqgBBgP/AAAsI/////6qqqqoAQZH/wAALAQQAQbD/wAALEKqqqqoAAAAAAAAAAP////8AQaCAwQALBKqqqqoAQbiAwQALBKqqqqoAQdCAwQALCP////+qqqqqAEHhgMEACwEEAEGAgcEACxCqqqqqAAAAAAAAAAD/////AEHwgcEACwSqqqqqAEGIgsEACwSqqqqqAEGggsEACwj/////qqqqqgBBsYLBAAsBBABB0ILBAAsQqqqqqgAAAAAAAAAA/////wBBwIPBAAsEqqqqqgBB2IPBAAsEqqqqqgBB8IPBAAsI/////6qqqqoAQYGEwQALAQQAQaCEwQALEKqqqqoAAAAAAAAAAP////8AQZCFwQALBKqqqqoAQaiFwQALBKqqqqoAQcCFwQALCP////+qqqqqAEHRhcEACwEEAEHwhcEACxCqqqqqAAAAAAAAAAD/////AEHghsEACwSqqqqqAEH4hsEACwSqqqqqAEGQh8EACwj/////qqqqqgBBoYfBAAsBBABBwIfBAAsQqqqqqgAAAAAAAAAA/////wBBsIjBAAsEqqqqqgBByIjBAAsEqqqqqgBB4IjBAAsI/////6qqqqoAQfGIwQALAQQAQZCJwQALEKqqqqoAAAAAAAAAAP////8AQYCKwQALBKqqqqoAQZiKwQALBKqqqqoAQbCKwQALCP////+qqqqqAEHBisEACwEEAEHgisEACxCqqqqqAAAAAAAAAAD/////AEHQi8EACwSqqqqqAEHoi8EACwSqqqqqAEGAjMEACwj/////qqqqqgBBkYzBAAsBBABBsIzBAAsQqqqqqgAAAAAAAAAA/////wBBoI3BAAsEqqqqqgBBuI3BAAsEqqqqqgBB0I3BAAsI/////6qqqqoAQeGNwQALAQQAQYCOwQALEKqqqqoAAAAAAAAAAP////8AQfCOwQALBKqqqqoAQYiPwQALBKqqqqoAQaCPwQALCP////+qqqqqAEGxj8EACwEEAEHQj8EACxCqqqqqAAAAAAAAAAD/////AEHAkMEACwSqqqqqAEHYkMEACwSqqqqqAEHwkMEACwj/////qqqqqgBBgZHBAAsBBABBoJHBAAsQqqqqqgAAAAAAAAAA/////wBBkJLBAAsEqqqqqgBBqJLBAAsEqqqqqgBBwJLBAAsI/////6qqqqoAQdGSwQALAQQAQfCSwQALEKqqqqoAAAAAAAAAAP////8AQeCTwQALBKqqqqoAQfiTwQALBKqqqqoAQZCUwQALCP////+qqqqqAEGhlMEACwEEAEHAlMEACxCqqqqqAAAAAAAAAAD/////AEGwlcEACwSqqqqqAEHIlcEACwSqqqqqAEHglcEACwj/////qqqqqgBB8ZXBAAsBBABBkJbBAAsQqqqqqgAAAAAAAAAA/////wBBgJfBAAsEqqqqqgBBmJfBAAsEqqqqqgBBsJfBAAsI/////6qqqqoAQcGXwQALAQQAQeCXwQALEKqqqqoAAAAAAAAAAP////8AQdCYwQALBKqqqqoAQeiYwQALBKqqqqoAQYCZwQALCP////+qqqqqAEGRmcEACwEEAEGwmcEACxCqqqqqAAAAAAAAAAD/////AEGgmsEACwSqqqqqAEG4msEACwSqqqqqAEHQmsEACwj/////qqqqqgBB4ZrBAAsBBABBgJvBAAsQqqqqqgAAAAAAAAAA/////wBB8JvBAAsEqqqqqgBBiJzBAAsEqqqqqgBBoJzBAAsI/////6qqqqoAQbGcwQALAQQAQdCcwQALEKqqqqoAAAAAAAAAAP////8AQcCdwQALBKqqqqoAQdidwQALBKqqqqoAQfCdwQALCP////+qqqqqAEGBnsEACwEEAEGgnsEACxCqqqqqAAAAAAAAAAD/////AEGQn8EACwSqqqqqAEGon8EACwSqqqqqAEHAn8EACwj/////qqqqqgBB0Z/BAAsBBABB8J/BAAsQqqqqqgAAAAAAAAAA/////wBB4KDBAAsEqqqqqgBB+KDBAAsEqqqqqgBBkKHBAAsI/////6qqqqoAQaGhwQALAQQAQcChwQALEKqqqqoAAAAAAAAAAP////8AQbCiwQALBKqqqqoAQciiwQALBKqqqqoAQeCiwQALCP////+qqqqqAEHxosEACwEEAEGQo8EACxCqqqqqAAAAAAAAAAD/////AEGApMEACwSqqqqqAEGYpMEACwSqqqqqAEGwpMEACwj/////qqqqqgBBwaTBAAsBBABB4KTBAAsQqqqqqgAAAAAAAAAA/////wBB0KXBAAsEqqqqqgBB6KXBAAsEqqqqqgBBgKbBAAsI/////6qqqqoAQZGmwQALAQQAQbCmwQALEKqqqqoAAAAAAAAAAP////8AQaCnwQALBKqqqqoAQbinwQALBKqqqqoAQdCnwQALCP////+qqqqqAEHhp8EACwEEAEGAqMEACxCqqqqqAAAAAAAAAAD/////AEHwqMEACwSqqqqqAEGIqcEACwSqqqqqAEGgqcEACwj/////qqqqqgBBsanBAAsBBABB0KnBAAsQqqqqqgAAAAAAAAAA/////wBBwKrBAAsEqqqqqgBB2KrBAAsEqqqqqgBB8KrBAAsI/////6qqqqoAQYGrwQALAQQAQaCrwQALEKqqqqoAAAAAAAAAAP////8AQZCswQALBKqqqqoAQaiswQALBKqqqqoAQcCswQALCP////+qqqqqAEHRrMEACwEEAEHwrMEACxCqqqqqAAAAAAAAAAD/////AEHgrcEACwSqqqqqAEH4rcEACwSqqqqqAEGQrsEACwj/////qqqqqgBBoa7BAAsBBABBwK7BAAsQqqqqqgAAAAAAAAAA/////wBBsK/BAAsEqqqqqgBByK/BAAsEqqqqqgBB4K/BAAsI/////6qqqqoAQfGvwQALAQQAQZCwwQALEKqqqqoAAAAAAAAAAP////8AQYCxwQALBKqqqqoAQZixwQALBKqqqqoAQbCxwQALCP////+qqqqqAEHBscEACwEEAEHgscEACxCqqqqqAAAAAAAAAAD/////AEHQssEACwSqqqqqAEHossEACwSqqqqqAEGAs8EACwj/////qqqqqgBBkbPBAAsBBABBsLPBAAsQqqqqqgAAAAAAAAAA/////wBBoLTBAAsEqqqqqgBBuLTBAAsEqqqqqgBB0LTBAAsI/////6qqqqoAQeG0wQALAQQAQYC1wQALEKqqqqoAAAAAAAAAAP////8AQfC1wQALBKqqqqoAQYi2wQALBKqqqqoAQaC2wQALCP////+qqqqqAEGxtsEACwEEAEHQtsEACxCqqqqqAAAAAAAAAAD/////AEHAt8EACwSqqqqqAEHYt8EACwSqqqqqAEHwt8EACwj/////qqqqqgBBgbjBAAsBBABBoLjBAAsQqqqqqgAAAAAAAAAA/////wBBkLnBAAsEqqqqqgBBqLnBAAsEqqqqqgBBwLnBAAsI/////6qqqqoAQdG5wQALAQQAQfC5wQALEKqqqqoAAAAAAAAAAP////8AQeC6wQALBKqqqqoAQfi6wQALBKqqqqoAQZC7wQALCP////+qqqqqAEGhu8EACwEEAEHAu8EACxCqqqqqAAAAAAAAAAD/////AEGwvMEACwSqqqqqAEHIvMEACwSqqqqqAEHgvMEACwj/////qqqqqgBB8bzBAAsBBABBkL3BAAsQqqqqqgAAAAAAAAAA/////wBBgL7BAAsEqqqqqgBBmL7BAAsEqqqqqgBBsL7BAAsI/////6qqqqoAQcG+wQALAQQAQeC+wQALEKqqqqoAAAAAAAAAAP////8AQdC/wQALBKqqqqoAQei/wQALBKqqqqoAQYDAwQALCP////+qqqqqAEGRwMEACwEEAEGwwMEACxCqqqqqAAAAAAAAAAD/////AEGgwcEACwSqqqqqAEG4wcEACwSqqqqqAEHQwcEACwj/////qqqqqgBB4cHBAAsBBABBgMLBAAsQqqqqqgAAAAAAAAAA/////wBB8MLBAAsEqqqqqgBBiMPBAAsEqqqqqgBBoMPBAAsI/////6qqqqoAQbHDwQALAQQAQdDDwQALEKqqqqoAAAAAAAAAAP////8AQcDEwQALBKqqqqoAQdjEwQALBKqqqqoAQfDEwQALCP////+qqqqqAEGBxcEACwEEAEGgxcEACxCqqqqqAAAAAAAAAAD/////AEGQxsEACwSqqqqqAEGoxsEACwSqqqqqAEHAxsEACwj/////qqqqqgBB0cbBAAsBBABB8MbBAAsQqqqqqgAAAAAAAAAA/////wBB4MfBAAsEqqqqqgBB+MfBAAsEqqqqqgBBkMjBAAsI/////6qqqqoAQaHIwQALAQQAQcDIwQALEKqqqqoAAAAAAAAAAP////8AQbDJwQALBKqqqqoAQcjJwQALBKqqqqoAQeDJwQALCP////+qqqqqAEHxycEACwEEAEGQysEACxCqqqqqAAAAAAAAAAD/////AEGAy8EACwSqqqqqAEGYy8EACwSqqqqqAEGwy8EACwj/////qqqqqgBBwcvBAAsBBABB4MvBAAsQqqqqqgAAAAAAAAAA/////wBB0MzBAAsEqqqqqgBB6MzBAAsEqqqqqgBBgM3BAAsI/////6qqqqoAQZHNwQALAQQAQbDNwQALEKqqqqoAAAAAAAAAAP////8AQaDOwQALBKqqqqoAQbjOwQALBKqqqqoAQdDOwQALCP////+qqqqqAEHhzsEACwEEAEGAz8EACxCqqqqqAAAAAAAAAAD/////AEHwz8EACwSqqqqqAEGI0MEACwSqqqqqAEGg0MEACwj/////qqqqqgBBsdDBAAsBBABB0NDBAAsQqqqqqgAAAAAAAAAA/////wBBwNHBAAsEqqqqqgBB2NHBAAsEqqqqqgBB8NHBAAsI/////6qqqqoAQYHSwQALAQQAQaDSwQALEKqqqqoAAAAAAAAAAP////8AQZDTwQALBKqqqqoAQajTwQALBKqqqqoAQcDTwQALCP////+qqqqqAEHR08EACwEEAEHw08EACxCqqqqqAAAAAAAAAAD/////AEHg1MEACwSqqqqqAEH41MEACwSqqqqqAEGQ1cEACwj/////qqqqqgBBodXBAAsBBABBwNXBAAsQqqqqqgAAAAAAAAAA/////wBBsNbBAAsEqqqqqgBByNbBAAsEqqqqqgBB4NbBAAsI/////6qqqqoAQfHWwQALAQQAQZDXwQALEKqqqqoAAAAAAAAAAP////8AQYDYwQALBKqqqqoAQZjYwQALBKqqqqoAQbDYwQALCP////+qqqqqAEHB2MEACwEEAEHg2MEACxCqqqqqAAAAAAAAAAD/////AEHQ2cEACwSqqqqqAEHo2cEACwSqqqqqAEGA2sEACwj/////qqqqqgBBkdrBAAsBBABBsNrBAAsQqqqqqgAAAAAAAAAA/////wBBoNvBAAsEqqqqqgBBuNvBAAsEqqqqqgBB0NvBAAsI/////6qqqqoAQeHbwQALAQQAQYDcwQALEKqqqqoAAAAAAAAAAP////8AQfDcwQALBKqqqqoAQYjdwQALBKqqqqoAQaDdwQALCP////+qqqqqAEGx3cEACwEEAEHQ3cEACxCqqqqqAAAAAAAAAAD/////AEHA3sEACwSqqqqqAEHY3sEACwSqqqqqAEHw3sEACwj/////qqqqqgBBgd/BAAsBBABBoN/BAAsQqqqqqgAAAAAAAAAA/////wBBkODBAAsEqqqqqgBBqODBAAsEqqqqqgBBwODBAAsI/////6qqqqoAQdHgwQALAQQAQfDgwQALEKqqqqoAAAAAAAAAAP////8AQeDhwQALBKqqqqoAQfjhwQALBKqqqqoAQZDiwQALCP////+qqqqqAEGh4sEACwEEAEHA4sEACxCqqqqqAAAAAAAAAAD/////AEGw48EACwSqqqqqAEHI48EACwSqqqqqAEHg48EACwj/////qqqqqgBB8ePBAAsBBABBkOTBAAsQqqqqqgAAAAAAAAAA/////wBBgOXBAAsEqqqqqgBBmOXBAAsEqqqqqgBBsOXBAAsI/////6qqqqoAQcHlwQALAQQAQeDlwQALEKqqqqoAAAAAAAAAAP////8AQdDmwQALBKqqqqoAQejmwQALBKqqqqoAQYDnwQALCP////+qqqqqAEGR58EACwEEAEGw58EACxCqqqqqAAAAAAAAAAD/////AEGg6MEACwSqqqqqAEG46MEACwSqqqqqAEHQ6MEACwj/////qqqqqgBB4ejBAAsBBABBgOnBAAsQqqqqqgAAAAAAAAAA/////wBB8OnBAAsEqqqqqgBBiOrBAAsEqqqqqgBBoOrBAAsI/////6qqqqoAQbHqwQALAQQAQdDqwQALEKqqqqoAAAAAAAAAAP////8AQcDrwQALBKqqqqoAQdjrwQALBKqqqqoAQfDrwQALCP////+qqqqqAEGB7MEACwEEAEGg7MEACxCqqqqqAAAAAAAAAAD/////AEGQ7cEACwSqqqqqAEGo7cEACwSqqqqqAEHA7cEACwj/////qqqqqgBB0e3BAAsBBABB8O3BAAsQqqqqqgAAAAAAAAAA/////wBB4O7BAAsEqqqqqgBB+O7BAAsEqqqqqgBBkO/BAAsI/////6qqqqoAQaHvwQALAQQAQcDvwQALEKqqqqoAAAAAAAAAAP////8AQbDwwQALBKqqqqoAQcjwwQALBKqqqqoAQeDwwQALCP////+qqqqqAEHx8MEACwEEAEGQ8cEACxCqqqqqAAAAAAAAAAD/////AEGA8sEACwSqqqqqAEGY8sEACwSqqqqqAEGw8sEACwj/////qqqqqgBBwfLBAAsBBABB4PLBAAsQqqqqqgAAAAAAAAAA/////wBB0PPBAAsEqqqqqgBB6PPBAAsEqqqqqgBBgPTBAAsI/////6qqqqoAQZH0wQALAQQAQbD0wQALEKqqqqoAAAAAAAAAAP////8AQaD1wQALBKqqqqoAQbj1wQALBKqqqqoAQdD1wQALCP////+qqqqqAEHh9cEACwEEAEGA9sEACxCqqqqqAAAAAAAAAAD/////AEHw9sEACwSqqqqqAEGI98EACwSqqqqqAEGg98EACwj/////qqqqqgBBsffBAAsBBABB0PfBAAsQqqqqqgAAAAAAAAAA/////wBBwPjBAAsEqqqqqgBB2PjBAAsEqqqqqgBB8PjBAAsI/////6qqqqoAQYH5wQALAQQAQaD5wQALEKqqqqoAAAAAAAAAAP////8AQZD6wQALBKqqqqoAQaj6wQALBKqqqqoAQcD6wQALCP////+qqqqqAEHR+sEACwEEAEHw+sEACxCqqqqqAAAAAAAAAAD/////AEHg+8EACwSqqqqqAEH4+8EACwSqqqqqAEGQ/MEACwj/////qqqqqgBBofzBAAsBBABBwPzBAAsQqqqqqgAAAAAAAAAA/////wBBsP3BAAsEqqqqqgBByP3BAAsEqqqqqgBB4P3BAAsI/////6qqqqoAQfH9wQALAQQAQZD+wQALEKqqqqoAAAAAAAAAAP////8AQYD/wQALBKqqqqoAQZj/wQALBKqqqqoAQbD/wQALCP////+qqqqqAEHB/8EACwEEAEHg/8EACxCqqqqqAAAAAAAAAAD/////AEHQgMIACwSqqqqqAEHogMIACwSqqqqqAEGAgcIACwj/////qqqqqgBBkYHCAAsBBABBsIHCAAsQqqqqqgAAAAAAAAAA/////wBBoILCAAsEqqqqqgBBuILCAAsEqqqqqgBB0ILCAAsI/////6qqqqoAQeGCwgALAQQAQYCDwgALEKqqqqoAAAAAAAAAAP////8AQfCDwgALBKqqqqoAQYiEwgALBKqqqqoAQaCEwgALCP////+qqqqqAEGxhMIACwEEAEHQhMIACxCqqqqqAAAAAAAAAAD/////AEHAhcIACwSqqqqqAEHYhcIACwSqqqqqAEHwhcIACwj/////qqqqqgBBgYbCAAsBBABBoIbCAAsQqqqqqgAAAAAAAAAA/////wBBkIfCAAsEqqqqqgBBqIfCAAsEqqqqqgBBwIfCAAsI/////6qqqqoAQdGHwgALAQQAQfCHwgALEKqqqqoAAAAAAAAAAP////8AQeCIwgALBKqqqqoAQfiIwgALBKqqqqoAQZCJwgALCP////+qqqqqAEGhicIACwEEAEHAicIACxCqqqqqAAAAAAAAAAD/////AEGwisIACwSqqqqqAEHIisIACwSqqqqqAEHgisIACwj/////qqqqqgBB8YrCAAsBBABBkIvCAAsQqqqqqgAAAAAAAAAA/////wBBgIzCAAsEqqqqqgBBmIzCAAsEqqqqqgBBsIzCAAsI/////6qqqqoAQcGMwgALAQQAQeCMwgALEKqqqqoAAAAAAAAAAP////8AQdCNwgALBKqqqqoAQeiNwgALBKqqqqoAQYCOwgALCP////+qqqqqAEGRjsIACwEEAEGwjsIACxCqqqqqAAAAAAAAAAD/////AEGgj8IACwSqqqqqAEG4j8IACwSqqqqqAEHQj8IACwj/////qqqqqgBB4Y/CAAsBBABBgJDCAAsQqqqqqgAAAAAAAAAA/////wBB8JDCAAsEqqqqqgBBiJHCAAsEqqqqqgBBoJHCAAsI/////6qqqqoAQbGRwgALAQQAQdCRwgALEKqqqqoAAAAAAAAAAP////8AQcCSwgALBKqqqqoAQdiSwgALBKqqqqoAQfCSwgALCP////+qqqqqAEGBk8IACwEEAEGgk8IACxCqqqqqAAAAAAAAAAD/////AEGQlMIACwSqqqqqAEGolMIACwSqqqqqAEHAlMIACwj/////qqqqqgBB0ZTCAAsBBABB8JTCAAsQqqqqqgAAAAAAAAAA/////wBB4JXCAAsEqqqqqgBB+JXCAAsEqqqqqgBBkJbCAAsI/////6qqqqoAQaGWwgALAQQAQcCWwgALEKqqqqoAAAAAAAAAAP////8AQbCXwgALBKqqqqoAQciXwgALBKqqqqoAQeCXwgALCP////+qqqqqAEHxl8IACwEEAEGQmMIACxCqqqqqAAAAAAAAAAD/////AEGAmcIACwSqqqqqAEGYmcIACwSqqqqqAEGwmcIACwj/////qqqqqgBBwZnCAAsBBABB4JnCAAsQqqqqqgAAAAAAAAAA/////wBB0JrCAAsEqqqqqgBB6JrCAAsEqqqqqgBBgJvCAAsI/////6qqqqoAQZGbwgALAQQAQbCbwgALEKqqqqoAAAAAAAAAAP////8AQaCcwgALBKqqqqoAQbicwgALBKqqqqoAQdCcwgALCP////+qqqqqAEHhnMIACwEEAEGAncIACxCqqqqqAAAAAAAAAAD/////AEHwncIACwSqqqqqAEGInsIACwSqqqqqAEGgnsIACwj/////qqqqqgBBsZ7CAAsBBABB0J7CAAsQqqqqqgAAAAAAAAAA/////wBBwJ/CAAsEqqqqqgBB2J/CAAsEqqqqqgBB8J/CAAsI/////6qqqqoAQYGgwgALAQQAQaCgwgALEKqqqqoAAAAAAAAAAP////8AQZChwgALBKqqqqoAQaihwgALBKqqqqoAQcChwgALCP////+qqqqqAEHRocIACwEEAEHwocIACxCqqqqqAAAAAAAAAAD/////AEHgosIACwSqqqqqAEH4osIACwSqqqqqAEGQo8IACwj/////qqqqqgBBoaPCAAsBBABBwKPCAAsQqqqqqgAAAAAAAAAA/////wBBsKTCAAsEqqqqqgBByKTCAAsEqqqqqgBB4KTCAAsI/////6qqqqoAQfGkwgALAQQAQZClwgALEKqqqqoAAAAAAAAAAP////8AQYCmwgALBKqqqqoAQZimwgALBKqqqqoAQbCmwgALCP////+qqqqqAEHBpsIACwEEAEHgpsIACxCqqqqqAAAAAAAAAAD/////AEHQp8IACwSqqqqqAEHop8IACwSqqqqqAEGAqMIACwj/////qqqqqgBBkajCAAsBBABBsKjCAAsQqqqqqgAAAAAAAAAA/////wBBoKnCAAsEqqqqqgBBuKnCAAsEqqqqqgBB0KnCAAsI/////6qqqqoAQeGpwgALAQQAQYCqwgALEKqqqqoAAAAAAAAAAP////8AQfCqwgALBKqqqqoAQYirwgALBKqqqqoAQaCrwgALCP////+qqqqqAEGxq8IACwEEAEHQq8IACxCqqqqqAAAAAAAAAAD/////AEHArMIACwSqqqqqAEHYrMIACwSqqqqqAEHwrMIACwj/////qqqqqgBBga3CAAsBBABBoK3CAAsQqqqqqgAAAAAAAAAA/////wBBkK7CAAsEqqqqqgBBqK7CAAsEqqqqqgBBwK7CAAsI/////6qqqqoAQdGuwgALAQQAQfCuwgALEKqqqqoAAAAAAAAAAP////8=\";\n",
|
|
6
|
-
"/**\n * VectorJSON — SIMD-accelerated JSON parser\n *\n * Architecture:\n * JS bytes → [Zig + zimdjson SIMD] → tape → lazy Proxy over doc slots\n *\n * The Zig engine (engine.wasm) parses JSON bytes into an internal tape format\n * using SIMD-accelerated algorithms from zimdjson.\n *\n * Primary parse path: doc-slot (tape-direct navigation via Zig exports).\n * FinalizationRegistry auto-frees doc slots when the Proxy is GC'd.\n * Users CAN call .free() to release immediately if desired.\n */\n\nimport { wasmBase64 } from \"./engine-wasm.generated.js\";\n\nfunction decodeBase64(b64: string): Uint8Array {\n if (typeof Buffer !== \"undefined\")\n return new Uint8Array(Buffer.from(b64, \"base64\").buffer);\n const bin = atob(b64);\n const bytes = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i);\n return bytes;\n}\n\n// --- Types ---\n\nexport type ParseStatus = \"complete\" | \"complete_early\" | \"incomplete\" | \"invalid\";\nexport type FeedStatus = \"incomplete\" | \"complete\" | \"error\" | \"end_early\";\n\n/** Result shape compatible with Vercel AI SDK's parsePartialJson */\nexport type PartialJsonState =\n | \"successful-parse\"\n | \"repaired-parse\"\n | \"failed-parse\";\n\n/** Discriminated union — narrows `value` type when you check `state`. */\nexport type PartialJsonResult<T = unknown> =\n | { value: T; state: \"successful-parse\" }\n | { value: T | undefined; state: \"repaired-parse\" }\n | { value: undefined; state: \"failed-parse\" };\n\n/** Recursively make all properties optional — matches Vercel AI SDK's DeepPartial. */\nexport type DeepPartial<T> =\n T extends object\n ? T extends Array<infer U>\n ? Array<DeepPartial<U>>\n : { [K in keyof T]?: DeepPartial<T[K]> }\n : T;\n\nexport interface StreamingParser<T = unknown> {\n /** Feed a chunk of bytes to the parser. Only NEW bytes are scanned (O(chunk_size)). */\n feed(chunk: Uint8Array | string): FeedStatus;\n /** Get the parsed value. Returns autocompleted partial value while incomplete, final value when complete; throws on parse errors. */\n getValue(): T | undefined;\n /** Get remaining bytes after end_early status (for NDJSON). */\n getRemaining(): Uint8Array | null;\n /** Get the current status without feeding data. */\n getStatus(): FeedStatus;\n /** Copy the accumulated stream buffer into a new ArrayBuffer (for Worker postMessage transfer). */\n getRawBuffer(): ArrayBuffer | null;\n /** Destroy the parser and free all resources. */\n destroy(): void;\n}\n\nexport interface ParseResult {\n status: ParseStatus;\n value?: unknown;\n remaining?: Uint8Array;\n error?: string;\n /** Check if a value (object/array) from an incomplete parse is fully present in the original input. */\n isComplete(value: unknown): boolean;\n /** Full materialization via JSON.parse — fastest way to get a plain JS object tree. */\n toJSON(): unknown;\n}\n\n// --- EventParser Types ---\n\n/** Compiled path segment: string = key, number = index, '*' = wildcard */\nexport type PathSegment = string | number;\n\nexport interface PathEvent {\n type: 'value';\n path: string;\n value: unknown;\n offset: number;\n length: number;\n index?: number;\n key?: string;\n matches: (string | number)[];\n}\n\nexport interface DeltaEvent {\n type: 'delta';\n path: string;\n value: string;\n offset: number;\n length: number;\n}\n\nexport interface RootEvent {\n type: 'root';\n index: number;\n value: unknown;\n}\n\nexport interface EventParser {\n on(path: string, callback: (event: PathEvent) => void): EventParser;\n on<T>(path: string, schema: { safeParse: (v: unknown) => { success: boolean; data?: T } }, callback: (event: PathEvent & { value: T }) => void): EventParser;\n onDelta(path: string, callback: (event: DeltaEvent) => void): EventParser;\n onText(callback: (text: string) => void): EventParser;\n skip(...paths: string[]): EventParser;\n off(path: string, callback?: Function): EventParser;\n feed(chunk: string | Uint8Array): FeedStatus;\n getValue(): unknown | undefined;\n getRemaining(): Uint8Array | null;\n getStatus(): FeedStatus;\n /** Copy the accumulated stream buffer into a new ArrayBuffer (for Worker postMessage transfer). */\n getRawBuffer(): ArrayBuffer | null;\n destroy(): void;\n}\n\nexport interface VectorJSON {\n /**\n * Parse a JSON string or Uint8Array into a value.\n * Primitives (null, boolean, number) are returned directly as JS values.\n * Objects and arrays return Proxy objects — values materialize only when accessed.\n * Call .free() on the result to release resources immediately, or let\n * FinalizationRegistry handle it automatically when the Proxy is GC'd.\n */\n parse(input: string | Uint8Array): ParseResult;\n /**\n * Create a streaming parser for incremental JSON parsing.\n * Feed chunks as they arrive; only new bytes are processed per call.\n * Total work is O(N) regardless of how many chunks — no re-parsing.\n *\n * ```ts\n * const parser = vj.createParser();\n * for await (const chunk of stream) {\n * const status = parser.feed(chunk);\n * if (status === \"complete\" || status === \"end_early\") {\n * const value = parser.getValue();\n * // use value...\n * parser.destroy();\n * break;\n * }\n * }\n * ```\n */\n createParser(): StreamingParser;\n /**\n * Create a streaming parser with schema validation.\n * `getValue()` returns `undefined` when the schema rejects the value (same as incomplete).\n * T is auto-inferred from the schema — no manual `<T>` needed.\n *\n * ```ts\n * const parser = vj.createParser(z.object({ name: z.string() }));\n * parser.feed('{\"name\":\"Alice\"}');\n * parser.getValue(); // { name: string } | undefined\n * ```\n */\n createParser<T>(schema: { safeParse: (v: unknown) => { success: boolean; data?: T } }): StreamingParser<T>;\n /**\n * Deep-compare two values for structural equality.\n * When both values are VJ proxies, comparison happens entirely in WASM\n * (walks tapes in linear memory — zero JS allocations, zero Proxy traps).\n * Falls back to JSON.stringify comparison for plain JS objects.\n *\n * By default, object key order does not matter (`{\"a\":1,\"b\":2}` equals `{\"b\":2,\"a\":1}`).\n * Pass `{ ordered: true }` for faster key-order-sensitive comparison.\n */\n deepCompare(a: unknown, b: unknown, options?: { ignoreKeyOrder?: boolean }): boolean;\n /**\n * Eagerly materialize a lazy proxy into plain JS objects.\n * If the value is already a plain JS value, returns it as-is.\n */\n materialize(value: unknown): unknown;\n /**\n * Drop-in replacement for AI SDK partial JSON parsers.\n * Parses a potentially incomplete JSON string and returns a plain JS object.\n *\n * Compatible with Vercel AI SDK's `parsePartialJson` — returns `{ value, state }`\n * where state is \"successful-parse\", \"repaired-parse\", or \"failed-parse\".\n *\n * ```ts\n * // Drop-in for Vercel AI SDK:\n * const { value, state } = vj.parsePartialJson('{\"a\": 1, \"b\": ');\n * // value = { a: 1, b: null }, state = \"repaired-parse\"\n * ```\n */\n parsePartialJson(input: string): PartialJsonResult;\n /**\n * Parse partial JSON with schema-inferred types.\n * T is auto-inferred from the schema — no manual `<T>` needed.\n *\n * Returns `DeepPartial<T>` because incomplete JSON will have missing fields.\n * When `safeParse` succeeds, returns the validated `data`.\n * When `safeParse` fails on a repaired-parse, returns the raw parsed value\n * (typed as `DeepPartial<T>`) — the object is partial, that's expected.\n *\n * ```ts\n * const User = z.object({ name: z.string(), age: z.number() });\n * const { value, state } = vj.parsePartialJson('{\"name\":\"Al', User);\n * // value: { name?: string; age?: number } | undefined\n * // state: \"repaired-parse\"\n * ```\n */\n parsePartialJson<T>(input: string, schema: { safeParse: (v: unknown) => { success: boolean; data?: T } }): PartialJsonResult<DeepPartial<T>>;\n /**\n * Create an event-driven streaming parser with path subscriptions,\n * string delta emission, multi-root support, and JSON boundary detection.\n */\n createEventParser(options?: {\n multiRoot?: boolean;\n onRoot?: (event: RootEvent) => void;\n }): EventParser;\n}\n\n// --- Error codes from Zig engine ---\nconst ERROR_MESSAGES: Record<number, string> = {\n 1: \"Exceeded maximum nesting depth\",\n 2: \"Document exceeds maximum capacity\",\n 3: \"Invalid escape sequence\",\n 4: \"Invalid Unicode code point\",\n 5: \"Invalid number literal\",\n 6: \"Expected colon after key\",\n 7: \"Expected string key in object\",\n 8: \"Expected comma or closing bracket in array\",\n 9: \"Expected comma or closing brace in object\",\n 10: \"Incomplete array\",\n 11: \"Incomplete object\",\n 12: \"Unexpected trailing content\",\n 13: \"Out of memory\",\n 99: \"Unknown parse error\",\n};\n\n// --- Module types ---\n\ninterface EngineExports {\n memory: WebAssembly.Memory;\n alloc(size: number): number;\n dealloc(ptr: number, size: number): void;\n get_error_code(): number;\n doc_parse(ptr: number, len: number): number;\n doc_free(docId: number): void;\n doc_get_tag(docId: number, index: number): number;\n doc_get_number(docId: number, index: number): number;\n doc_read_string_raw(docId: number, index: number): number;\n doc_get_count(docId: number, index: number): number;\n doc_get_src_pos(docId: number, index: number): number;\n doc_get_close_index(docId: number, index: number): number;\n doc_find_field(docId: number, objIndex: number, keyPtr: number, keyLen: number): number;\n doc_get_input_ptr(docId: number): number;\n doc_batch_ptr(): number;\n doc_array_elements(docId: number, arrIndex: number, resumeAt: number): number;\n doc_object_keys(docId: number, objIndex: number, resumeAt: number): number;\n doc_deep_equal(doc_a: number, idx_a: number, doc_b: number, idx_b: number, ordered: number): number;\n stream_create(): number;\n stream_destroy(id: number): void;\n stream_feed(id: number, ptr: number, len: number): number;\n stream_get_status(id: number): number;\n stream_get_buffer_ptr(id: number): number;\n stream_get_value_len(id: number): number;\n stream_get_remaining_ptr(id: number): number;\n stream_get_remaining_len(id: number): number;\n stream_get_buffer_len(id: number): number;\n stream_get_buffer_cap(id: number): number;\n stream_reset_for_next(id: number): number;\n classify_input(ptr: number, len: number): number;\n autocomplete_input(ptr: number, len: number, buf_cap: number): number;\n get_value_end(): number;\n}\n\nconst utf8Decoder = new TextDecoder('utf-8');\n\n// Pre-computed byte→char table — avoids String.fromCharCode() calls in hot loops\nconst B2C: string[] = Array.from({ length: 256 }, (_, i) => String.fromCharCode(i));\n\nlet _instance: VectorJSON | null = null;\n\n/**\n * Initialize VectorJSON by loading and linking the WASM module.\n * Call this once; subsequent calls return the cached instance.\n */\nexport async function init(options?: {\n engineWasm?: string | URL | BufferSource;\n}): Promise<VectorJSON> {\n if (_instance) return _instance;\n\n // Load WASM bytes — embedded base64 by default, filesystem/URL/buffer when explicit\n let engineBytes: BufferSource;\n const wasmOpt = options?.engineWasm;\n if (wasmOpt instanceof ArrayBuffer || ArrayBuffer.isView(wasmOpt)) {\n engineBytes = wasmOpt as BufferSource;\n } else if (typeof wasmOpt === \"string\" || wasmOpt instanceof URL) {\n // Dynamic import for filesystem — only when user explicitly passes a path\n const { readFile } = await import(\"node:fs/promises\");\n const { fileURLToPath } = await import(\"node:url\");\n const path = typeof wasmOpt === \"string\" ? wasmOpt : fileURLToPath(wasmOpt);\n engineBytes = await readFile(path);\n } else {\n engineBytes = decodeBase64(wasmBase64).buffer as ArrayBuffer;\n }\n\n // --- Instantiate Zig engine ---\n const { instance: engineInstance } = await WebAssembly.instantiate(engineBytes, {});\n const engine = engineInstance.exports as unknown as EngineExports;\n\n const encoder = new TextEncoder();\n\n // --- Reusable WASM buffers — grow-only, shared allocator pattern ---\n const inputBuf = { ptr: 0, cap: 0 };\n const keyBuf = { ptr: 0, cap: 0 };\n const feedBuf = { ptr: 0, cap: 0 };\n\n function ensureBuf(buf: typeof inputBuf, needed: number, minCap: number): number {\n if (needed <= buf.cap) return buf.ptr;\n if (buf.ptr !== 0) engine.dealloc(buf.ptr, buf.cap);\n let cap = buf.cap === 0 ? minCap : buf.cap;\n while (cap < needed) cap *= 2;\n buf.ptr = engine.alloc(cap) >>> 0;\n if (buf.ptr === 0) throw new Error(\"VectorJSON: allocation failed\");\n buf.cap = cap;\n return buf.ptr;\n }\n\n /** Encode string or copy Uint8Array into a reusable WASM buffer. Returns { ptr, len }. */\n function writeToWasm(\n input: string | Uint8Array, buf: typeof inputBuf, extraCap: number, minCap: number,\n ): { ptr: number; len: number } {\n if (typeof input === \"string\") {\n // Try optimistic allocation (1x for likely-ASCII), fall back to 3x for multi-byte\n let maxBytes = input.length + extraCap;\n let ptr = ensureBuf(buf, maxBytes, minCap);\n let result = encoder.encodeInto(input, new Uint8Array(engine.memory.buffer, ptr, maxBytes));\n if (result.read! < input.length) {\n // Input has multi-byte chars — reallocate with worst-case 3x\n maxBytes = input.length * 3 + extraCap;\n ptr = ensureBuf(buf, maxBytes, minCap);\n result = encoder.encodeInto(input, new Uint8Array(engine.memory.buffer, ptr, maxBytes));\n }\n return { ptr, len: result.written! };\n }\n const len = input.byteLength;\n const ptr = ensureBuf(buf, len + extraCap, minCap);\n new Uint8Array(engine.memory.buffer, ptr, len).set(input);\n return { ptr, len };\n }\n\n function writeKeyToMemory(key: string): { ptr: number; len: number } {\n if (key.length === 0) return { ptr: 1, len: 0 };\n return writeToWasm(key, keyBuf, 0, 256);\n }\n\n // --- Constants ---\n // Batch buffer address is a fixed global in WASM — cache to avoid repeated WASM calls\n const batchAddr = engine.doc_batch_ptr() >>> 0;\n\n const TAG_NULL = 0;\n const TAG_TRUE = 1;\n const TAG_FALSE = 2;\n const TAG_NUMBER = 3;\n const TAG_STRING = 4;\n const TAG_OBJECT = 5;\n const TAG_ARRAY = 6;\n\n const FEED_STATUS: readonly FeedStatus[] = [\"incomplete\", \"complete\", \"error\", \"end_early\"];\n const CLASSIFY_INCOMPLETE = 0;\n const CLASSIFY_COMPLETE_EARLY = 2;\n const CLASSIFY_INVALID = 3;\n\n // --- Sentinels ---\n const LAZY_PROXY = Symbol(\"vectorjson.lazy\");\n const UNCACHED = Symbol();\n\n // --- Explicit document disposal ---\n // Track generation per docId to prevent stale FinalizationRegistry callbacks\n // from freeing a reused slot. Each parse increments the generation.\n const docGenerations = new Map<number, number>();\n\n // --- FinalizationRegistry for auto-cleanup of document slots ---\n const docRegistry = new FinalizationRegistry(\n ({ docId, generation }: { docId: number; generation: number }) => {\n if (docGenerations.get(docId) !== generation) return; // stale callback\n docGenerations.delete(docId);\n docInputs.delete(docId);\n engine.doc_free(docId);\n },\n );\n\n /** Copy `count` u32 indices from the WASM batch buffer into a JS Uint32Array. */\n function copyBatchIndices(count: number): Uint32Array {\n const copy = new Uint32Array(count);\n copy.set(new Uint32Array(engine.memory.buffer, batchAddr, count));\n return copy;\n }\n\n /** Read all batch indices with pagination for >16384 items. */\n function readBatchPaginated(\n fn: (docId: number, idx: number, resume: number) => number,\n docId: number, idx: number,\n ): Uint32Array {\n const BATCH_CAP = 16384;\n let count = fn(docId, idx, 0);\n if (count < BATCH_CAP) return copyBatchIndices(count);\n const all: number[] = [];\n let page = copyBatchIndices(count);\n for (let i = 0; i < count; i++) all.push(page[i]);\n while (count === BATCH_CAP) {\n const resumeAt = new Uint32Array(engine.memory.buffer, batchAddr + BATCH_CAP * 4, 1)[0];\n count = fn(docId, idx, resumeAt);\n page = copyBatchIndices(count);\n for (let i = 0; i < count; i++) all.push(page[i]);\n }\n return new Uint32Array(all);\n }\n\n // --- Per-document original input tracking (for ASCII fast-path) ---\n // When input is a JS string and all chars are ASCII (byteLen === str.length),\n // we can slice the original string directly instead of reading WASM memory.\n const docInputs = new Map<number, string>();\n\n // --- Read a doc string at a tape index into a JS string ---\n // Strings are stored as source offsets into the original input.\n // The escape flag (batch_buffer[2]) tells us if decoding is needed,\n // avoiding a linear scan with includes('\\\\').\n function docReadString(docId: number, index: number): string {\n const rawLen = engine.doc_read_string_raw(docId, index) >>> 0;\n if (rawLen === 0) return \"\";\n\n const batch = new Uint32Array(engine.memory.buffer, batchAddr, 3);\n const srcOffset = batch[0];\n const hasEscapes = batch[2];\n\n // ASCII fast-path: if original JS string is available and was ASCII,\n // slice directly — no WASM memory read, no TextDecoder overhead.\n const asciiInput = docInputs.get(docId);\n if (asciiInput !== undefined) {\n const raw = asciiInput.slice(srcOffset, srcOffset + rawLen);\n return hasEscapes ? JSON.parse('\"' + raw + '\"') : raw;\n }\n\n const inputPtr = engine.doc_get_input_ptr(docId) >>> 0;\n const raw = utf8Decoder.decode(\n new Uint8Array(engine.memory.buffer, inputPtr + srcOffset, rawLen),\n );\n // has_escapes flag from SIMD skipString — no need for includes('\\\\')\n return hasEscapes ? JSON.parse('\"' + raw + '\"') : raw;\n }\n\n // --- Deep materialize from document tape ---\n // For containers (objects/arrays), slices the source span from WASM memory\n // and delegates to native JSON.parse — faster than recursive tape walking.\n // For primitives, reads directly from the tape.\n function deepMaterializeDoc(docId: number, index: number): unknown {\n const tag = engine.doc_get_tag(docId, index);\n if (tag === TAG_NULL) return null;\n if (tag === TAG_TRUE) return true;\n if (tag === TAG_FALSE) return false;\n if (tag === TAG_NUMBER) return engine.doc_get_number(docId, index);\n if (tag === TAG_STRING) return docReadString(docId, index);\n if (tag === TAG_OBJECT || tag === TAG_ARRAY) {\n // Get source span: opening bracket → closing bracket (inclusive)\n // doc_get_close_index returns one-past-end (simdjson convention for skipping).\n // The actual closing bracket is at closeIdx - 1.\n const startPos = (engine.doc_get_src_pos(docId, index) >>> 0);\n const closingTapeIdx = engine.doc_get_close_index(docId, index) - 1;\n const closePos = engine.doc_get_src_pos(docId, closingTapeIdx);\n const inputPtr = engine.doc_get_input_ptr(docId) >>> 0;\n const raw = new Uint8Array(\n engine.memory.buffer, inputPtr + startPos, closePos + 1 - startPos,\n );\n return JSON.parse(utf8Decoder.decode(raw));\n }\n return null;\n }\n\n /** Batch-read all element tape indices for an array (cached). */\n function batchElemIndices(target: any): Uint32Array {\n return target._e || (target._e = readBatchPaginated(engine.doc_array_elements, target._d, target._i));\n }\n\n /** Resolve a tape value: primitives return directly.\n * Objects: deep-materialize (complete parses) or Proxy (incomplete, for isComplete).\n * Arrays: always lazy Proxy. */\n function resolveValue(\n docId: number, index: number,\n keepAlive: object, generation: number,\n freeFn: (() => void) | undefined,\n proxyObjects = false,\n ): unknown {\n const tag = engine.doc_get_tag(docId, index);\n if (tag === TAG_NULL) return null;\n if (tag === TAG_TRUE) return true;\n if (tag === TAG_FALSE) return false;\n if (tag === TAG_NUMBER) return engine.doc_get_number(docId, index);\n if (tag === TAG_STRING) return docReadString(docId, index);\n\n // Objects: Proxy for incomplete parses (so isComplete can get tape index),\n // deep-materialize for complete parses (fast native property access).\n if (tag === TAG_OBJECT) {\n if (proxyObjects) {\n return new Proxy({ _d: docId, _i: index, _k: keepAlive, _g: generation, _f: freeFn } as any, docObjHandler);\n }\n return deepMaterializeDoc(docId, index);\n }\n\n // Arrays → lazy Proxy (materialize elements on access, cached)\n return new Proxy(\n Object.assign([], { _d: docId, _i: index, _k: keepAlive, _g: generation, _f: freeFn,\n _l: engine.doc_get_count(docId, index), _p: proxyObjects }),\n docArrHandler,\n );\n }\n\n // --- Shared Proxy handler for doc-backed array cursors ---\n const docArrHandler: ProxyHandler<any> = {\n get(target, prop, _receiver) {\n if (prop === 'free' || prop === Symbol.dispose) return target._f;\n if (prop === LAZY_PROXY) return target._m || (target._m = { docId: target._d, index: target._i });\n if (prop === 'length') return target._l;\n if (prop === Symbol.iterator) {\n const t = target; // single capture instead of 7 locals\n return function () {\n let i = 0;\n return {\n next() {\n if (i >= t._l) return { done: true as const, value: undefined };\n // Use indexed get to populate cache (avoids double-resolving)\n return { done: false as const, value: docArrHandler.get!(t, String(i++), t) };\n },\n };\n };\n }\n if (prop === Symbol.toStringTag) return \"Array\";\n if (typeof prop === 'string') {\n const idx = Number(prop);\n if (Number.isInteger(idx) && idx >= 0 && idx < target._l) {\n if (!target._c) target._c = new Array(target._l);\n if (target._c[idx] !== undefined) return target._c[idx];\n const indices = batchElemIndices(target);\n const val = resolveValue(target._d, indices[idx], target._k, target._g, target._f, target._p);\n target._c[idx] = val;\n return val;\n }\n if (prop in Array.prototype) {\n const materialized = deepMaterializeDoc(target._d, target._i) as unknown[];\n return (materialized as unknown as Record<string, unknown>)[prop];\n }\n }\n return undefined;\n },\n has(target, prop) {\n if (prop === LAZY_PROXY || prop === 'free' || prop === Symbol.dispose || prop === 'length') return true;\n if (typeof prop !== 'string') return false;\n const idx = Number(prop);\n return Number.isInteger(idx) && idx >= 0 && idx < target._l;\n },\n ownKeys(target) {\n const keys: string[] = [];\n for (let i = 0; i < target._l; i++) keys.push(String(i));\n keys.push('length');\n return keys;\n },\n getOwnPropertyDescriptor(target, prop) {\n if (prop === 'length') {\n return { value: target._l, writable: false, enumerable: false, configurable: false };\n }\n if (typeof prop === 'string') {\n const idx = Number(prop);\n if (Number.isInteger(idx) && idx >= 0 && idx < target._l) {\n return { value: this.get!(target, prop, target), writable: false, enumerable: true, configurable: true };\n }\n }\n return undefined;\n },\n };\n\n // --- Shared Proxy handler for doc-backed object proxies (incomplete parses) ---\n // doc_find_field compares raw source bytes against the key. For keys with\n // escape sequences (\\n, \\uXXXX), raw comparison fails — we fall back to\n // ownKeys iteration which properly decodes each key via docReadString.\n const docObjHandler: ProxyHandler<any> = {\n get(target, prop, _receiver) {\n if (prop === 'free' || prop === Symbol.dispose) return target._f;\n if (prop === LAZY_PROXY) return target._m || (target._m = { docId: target._d, index: target._i });\n if (typeof prop !== 'string') return prop === Symbol.toStringTag ? \"Object\" : undefined;\n if (!target._c) target._c = Object.create(null);\n if (prop in target._c) return target._c[prop];\n const { ptr, len } = writeKeyToMemory(prop);\n const valIdx = engine.doc_find_field(target._d, target._i, ptr, len);\n if (valIdx !== 0) {\n // Fast path: key matched raw source bytes (no escapes)\n const val = resolveValue(target._d, valIdx, target._k, target._g, target._f, true);\n target._c[prop] = val;\n return val;\n }\n // Fallback: escaped keys won't match raw bytes — iterate all keys\n const keys = this.ownKeys!(target) as string[];\n const keyIdx = keys.indexOf(prop);\n if (keyIdx === -1) return undefined;\n // Resolve value via cached key tape indices\n const val = resolveValue(target._d, target._ki[keyIdx] + 1, target._k, target._g, target._f, true);\n target._c[prop] = val;\n return val;\n },\n has(target, prop) {\n if (prop === LAZY_PROXY || prop === 'free' || prop === Symbol.dispose) return true;\n if (typeof prop !== 'string') return false;\n const { ptr, len } = writeKeyToMemory(prop);\n if (engine.doc_find_field(target._d, target._i, ptr, len) !== 0) return true;\n // Fallback for escaped keys\n const keys = this.ownKeys!(target) as string[];\n return keys.includes(prop);\n },\n ownKeys(target) {\n if (!target._keys) {\n const indices = readBatchPaginated(engine.doc_object_keys, target._d, target._i);\n target._ki = indices;\n target._keys = Array.from(indices, (idx) => docReadString(target._d, idx));\n }\n return target._keys;\n },\n getOwnPropertyDescriptor(target, prop) {\n if (typeof prop !== 'string') return undefined;\n // JSON cannot produce undefined — get() returning undefined means field not found\n const val = this.get!(target, prop, target);\n if (val === undefined) return undefined;\n return { value: val, writable: false, enumerable: true, configurable: true };\n },\n };\n\n // --- Check if a value is a lazy proxy ---\n function isLazyProxy(value: unknown): boolean {\n if (value === null || typeof value !== \"object\") return false;\n try { return LAZY_PROXY in (value as Record<symbol, unknown>); }\n catch { return false; }\n }\n\n // --- Build a value from a doc slot root (shared by parse + createParser) ---\n function buildDocRoot(docId: number, proxyObjects = false): unknown {\n const rootTag = engine.doc_get_tag(docId, 1);\n // Primitives: extract value and free doc immediately (no Proxy needed)\n if (rootTag <= TAG_STRING) {\n const value = rootTag === TAG_NULL ? null\n : rootTag === TAG_TRUE ? true\n : rootTag === TAG_FALSE ? false\n : rootTag === TAG_NUMBER ? engine.doc_get_number(docId, 1)\n : docReadString(docId, 1);\n docInputs.delete(docId);\n engine.doc_free(docId);\n return value;\n }\n // Containers: register for GC and wrap in Proxy with manual .free()\n const generation = (docGenerations.get(docId) ?? 0) + 1;\n docGenerations.set(docId, generation);\n const keepAlive = { docId };\n docRegistry.register(keepAlive, { docId, generation }, keepAlive);\n const freeFn = () => {\n void keepAlive; // prevent GC of sentinel\n if (docGenerations.get(docId) !== generation) return;\n docGenerations.delete(docId);\n docInputs.delete(docId);\n engine.doc_free(docId);\n docRegistry.unregister(keepAlive);\n };\n // Root always gets Proxy so .free() is accessible; force objects to Proxy for isComplete()\n return resolveValue(docId, 1, keepAlive, generation, freeFn, rootTag === TAG_OBJECT || proxyObjects);\n }\n\n // --- Helper: retry doc_parse with GC on slot exhaustion ---\n function tryDocParse(p: number, l: number): number {\n let docId = engine.doc_parse(p, l);\n if (docId < 0) {\n const errCode = engine.get_error_code();\n if (errCode === 2 || errCode === 13) {\n if (typeof globalThis.gc === \"function\") globalThis.gc();\n docId = engine.doc_parse(p, l);\n }\n }\n return docId;\n }\n\n // --- Path Pattern Compiler ---\n // Segments: string = key, number = index, '*' = wildcard\n\n function compilePath(pattern: string): PathSegment[] {\n return pattern.replace(/\\[(\\*|\\d+)\\]/g, '.$1').split('.').filter(Boolean)\n .map(s => s === '*' ? '*' : /^\\d+$/.test(s) ? +s : s);\n }\n\n function buildResolvedPath(keyStack: (string | null)[], indexStack: (number | null)[], depth: number): string {\n const parts: string[] = [];\n for (let i = 0; i < depth; i++) {\n if (keyStack[i] !== null) parts.push(keyStack[i]!);\n else if (indexStack[i] !== null) parts.push(String(indexStack[i]));\n }\n return parts.join('.');\n }\n\n // --- Public API ---\n _instance = {\n parse(input: string | Uint8Array): ParseResult {\n // Write input into reusable WASM buffer with extra headroom for autocomplete\n const { ptr, len } = writeToWasm(input, inputBuf, 64, 4096);\n // Pad after input for SIMD safety\n new Uint8Array(engine.memory.buffer, ptr + len, 64).fill(0x20);\n\n // Helper: build ParseResult with isComplete() and toJSON()\n const makeResult = (\n status: ParseStatus,\n value: unknown,\n autocompleteBoundary: number,\n toJSONStr: string | undefined,\n remaining?: Uint8Array,\n error?: string,\n ): ParseResult => {\n let _toJSONCache: unknown = UNCACHED;\n return {\n status,\n value,\n remaining,\n error,\n isComplete(val: unknown): boolean {\n if (autocompleteBoundary === Infinity) return true;\n if (val === null || val === undefined || typeof val !== \"object\") return true;\n try {\n const handle = (val as any)[LAZY_PROXY] as { docId?: number; index?: number } | undefined;\n if (!handle || typeof handle.docId !== \"number\") return true;\n const tag = engine.doc_get_tag(handle.docId, handle.index!);\n if (tag === TAG_OBJECT || tag === TAG_ARRAY) {\n const closeIdx = engine.doc_get_close_index(handle.docId, handle.index!);\n const closeSrcPos = engine.doc_get_src_pos(handle.docId, closeIdx) >>> 0;\n return closeSrcPos < autocompleteBoundary;\n }\n return true;\n } catch {\n return true; // fail-safe: freed doc → treat as complete\n }\n },\n toJSON(): unknown {\n if (_toJSONCache !== UNCACHED) return _toJSONCache;\n return (_toJSONCache = toJSONStr !== undefined ? JSON.parse(toJSONStr) : value);\n },\n };\n };\n\n // Helper: build an invalid ParseResult from the last engine error code\n const invalidResult = (msg?: string): ParseResult => {\n if (!msg) {\n const code = engine.get_error_code();\n msg = `VectorJSON: ${ERROR_MESSAGES[code] || `Parse error (code ${code})`}`;\n }\n return makeResult(\"invalid\", undefined, Infinity, undefined, undefined, msg);\n };\n\n // Track whether input is an ASCII JS string (byteLen === str.length).\n // If so, docReadString can slice the original string directly.\n const isAsciiStr = typeof input === \"string\" && len === input.length;\n\n // ── Happy path: try doc_parse directly (no classify overhead) ──\n let docId = tryDocParse(ptr, len);\n if (docId >= 0) {\n if (isAsciiStr) docInputs.set(docId, input as string);\n // For string input at full length, reuse the original string (avoids decode)\n const toJSONStr = typeof input === \"string\" ? input\n : utf8Decoder.decode(new Uint8Array(engine.memory.buffer, ptr, len));\n return makeResult(\"complete\", buildDocRoot(docId), Infinity, toJSONStr);\n }\n\n // ── doc_parse failed — classify to determine why ──\n const classification = engine.classify_input(ptr, len);\n\n if (classification === CLASSIFY_INVALID) {\n return invalidResult(\"Invalid JSON structure\");\n }\n\n if (classification === CLASSIFY_COMPLETE_EARLY) {\n const parseLen = engine.get_value_end();\n const remainLen = len - parseLen;\n const remainingCopy = new Uint8Array(remainLen);\n remainingCopy.set(new Uint8Array(engine.memory.buffer, ptr + parseLen, remainLen));\n new Uint8Array(engine.memory.buffer, ptr + parseLen, 64).fill(0x20);\n\n const toJSONStr = utf8Decoder.decode(new Uint8Array(engine.memory.buffer, ptr, parseLen));\n docId = tryDocParse(ptr, parseLen);\n if (docId >= 0) {\n if (isAsciiStr) docInputs.set(docId, input as string);\n return makeResult(\"complete_early\", buildDocRoot(docId), Infinity, toJSONStr, remainingCopy);\n }\n return invalidResult();\n }\n\n if (classification === CLASSIFY_INCOMPLETE) {\n const parseLen = engine.autocomplete_input(ptr, len, inputBuf.cap);\n if (parseLen === 0) {\n if (len === 0) return makeResult(\"incomplete\", undefined, len, undefined);\n return invalidResult(\"Invalid JSON structure\");\n }\n const toJSONStr = utf8Decoder.decode(new Uint8Array(engine.memory.buffer, ptr, parseLen));\n docId = tryDocParse(ptr, parseLen);\n if (docId >= 0) {\n // Don't use ASCII fast-path for incomplete: autocomplete appended\n // closing tokens that aren't in the original JS string.\n return makeResult(\"incomplete\", buildDocRoot(docId, true), len, toJSONStr);\n }\n return invalidResult();\n }\n\n return invalidResult();\n },\n\n deepCompare(a: unknown, b: unknown, options?: { ignoreKeyOrder?: boolean }): boolean {\n const ordered = (options?.ignoreKeyOrder === false) ? 1 : 0;\n\n // Fast path: both are VJ proxies → WASM tape comparison.\n // Single [LAZY_PROXY] access per arg (1 Proxy get trap) instead of\n // isLazyProxy + [LAZY_PROXY] (has trap + get trap + object allocation × 2).\n if (a !== null && typeof a === \"object\" && b !== null && typeof b === \"object\") {\n try {\n const metaA = (a as any)[LAZY_PROXY] as { docId: number; index: number } | undefined;\n const metaB = (b as any)[LAZY_PROXY] as { docId: number; index: number } | undefined;\n if (metaA && metaB) {\n const result = engine.doc_deep_equal(metaA.docId, metaA.index, metaB.docId, metaB.index, ordered);\n if (result >= 0) return result === 1;\n // fallthrough on error (-1 = invalid doc_id)\n }\n } catch { /* not a proxy, fall through */ }\n }\n\n // Fallback: materialize and compare with JSON round-trip\n return JSON.stringify(a) === JSON.stringify(b);\n },\n\n materialize(value: unknown): unknown {\n if (!isLazyProxy(value)) return value;\n const { docId, index } = (value as any)[LAZY_PROXY];\n return deepMaterializeDoc(docId, index);\n },\n\n parsePartialJson(input: string, schema?: { safeParse: (v: unknown) => { success: boolean; data?: unknown } }): PartialJsonResult {\n if (!input) return { value: undefined, state: \"failed-parse\" as const };\n const result = _instance!.parse(input);\n switch (result.status) {\n case \"complete\":\n case \"complete_early\": {\n const value = result.toJSON();\n if (schema) {\n const validated = schema.safeParse(value);\n if (validated.success) return { value: validated.data, state: \"successful-parse\" as const };\n return { value: undefined, state: \"successful-parse\" as const };\n }\n return { value, state: \"successful-parse\" as const };\n }\n case \"incomplete\": {\n const value = result.toJSON();\n if (schema) {\n const validated = schema.safeParse(value);\n if (validated.success) return { value: validated.data, state: \"repaired-parse\" as const };\n // Partial JSON: safeParse fails (missing fields expected) → keep raw value\n return { value, state: \"repaired-parse\" as const };\n }\n return { value, state: \"repaired-parse\" as const };\n }\n default:\n return { value: undefined, state: \"failed-parse\" as const };\n }\n },\n\n createEventParser(options?: {\n multiRoot?: boolean;\n onRoot?: (event: RootEvent) => void;\n }): EventParser {\n const multiRoot = options?.multiRoot ?? false;\n const onRootCb = options?.onRoot;\n\n const streamId = engine.stream_create();\n if (streamId < 0) {\n throw new Error(\"VectorJSON: Failed to create event parser (max 4 concurrent)\");\n }\n\n let destroyed = false;\n let rootIndex = 0;\n\n // --- Subscription storage ---\n type Sub = { segments: PathSegment[]; callback: Function; schema?: { safeParse: Function } };\n const pathSubs: Sub[] = [];\n const deltaSubs: Sub[] = [];\n const skipPatterns: PathSegment[][] = [];\n const textCallbacks: ((text: string) => void)[] = [];\n\n // --- JSON Seeker state ---\n const SEEKER_SEEKING = 0, SEEKER_IN_THINK = 1, SEEKER_IN_FENCE = 2, SEEKER_FEEDING = 3;\n let seekerState = SEEKER_SEEKING;\n let seekerBuf = ''; // accumulates non-JSON text for seeking\n let fenceBacktickCount = 0;\n\n function seekerFeed(text: string): string | null {\n // In FEEDING state, pass through directly\n if (seekerState === SEEKER_FEEDING) return text;\n\n let result = '';\n let i = 0;\n\n while (i < text.length) {\n if (seekerState === SEEKER_FEEDING) {\n result += text.slice(i);\n break;\n }\n\n if (seekerState === SEEKER_IN_THINK) {\n const closeIdx = text.indexOf('</think>', i);\n if (closeIdx === -1) {\n const captured = text.slice(i);\n for (const cb of textCallbacks) cb(captured);\n i = text.length;\n } else {\n const captured = text.slice(i, closeIdx);\n if (captured) for (const cb of textCallbacks) cb(captured);\n i = closeIdx + '</think>'.length;\n seekerState = SEEKER_SEEKING;\n seekerBuf = '';\n }\n continue;\n }\n\n if (seekerState === SEEKER_IN_FENCE) {\n // Look for closing fence\n const closeFence = '`'.repeat(fenceBacktickCount);\n const closeIdx = text.indexOf(closeFence, i);\n if (closeIdx === -1) {\n result += text.slice(i);\n i = text.length;\n } else {\n result += text.slice(i, closeIdx);\n i = closeIdx + fenceBacktickCount;\n fenceBacktickCount = 0;\n seekerState = SEEKER_SEEKING;\n seekerBuf = '';\n }\n continue;\n }\n\n // SEEKING state\n const ch = text[i];\n\n // Definitive JSON start characters → switch to FEEDING\n // Only { [ \" are reliable indicators — bare keywords (t/f/n) and\n // digits can appear in prose, so we only treat them as JSON start\n // if they're not part of other content.\n if (ch === '{' || ch === '[' || ch === '\"') {\n // Flush remaining seeker buf as text\n if (seekerBuf) {\n for (const cb of textCallbacks) cb(seekerBuf);\n seekerBuf = '';\n }\n seekerState = SEEKER_FEEDING;\n result += text.slice(i);\n break;\n }\n\n // Check for <think> tag\n seekerBuf += ch;\n if (seekerBuf.endsWith('<think>')) {\n const beforeTag = seekerBuf.slice(0, -'<think>'.length);\n if (beforeTag) for (const cb of textCallbacks) cb(beforeTag);\n seekerState = SEEKER_IN_THINK;\n seekerBuf = '';\n i++;\n continue;\n }\n\n // Check for code fence (``` with optional label)\n if (ch === '`') {\n // Count consecutive backticks\n let btCount = 0;\n let j = i;\n while (j < text.length && text[j] === '`') { btCount++; j++; }\n if (btCount >= 3) {\n // Skip label (e.g., \"json\") until newline\n while (j < text.length && text[j] !== '\\n') j++;\n if (j < text.length) j++; // skip the newline\n fenceBacktickCount = btCount;\n seekerState = SEEKER_IN_FENCE;\n const beforeFence = seekerBuf.slice(0, -1); // remove only the 1 backtick appended to seekerBuf\n if (beforeFence) for (const cb of textCallbacks) cb(beforeFence);\n seekerBuf = '';\n i = j;\n continue;\n }\n }\n\n // Whitespace and other non-JSON chars — keep seeking\n i++;\n\n // Flush accumulated non-JSON text periodically\n if (seekerBuf.length > 1024) {\n for (const cb of textCallbacks) cb(seekerBuf);\n seekerBuf = '';\n }\n }\n\n if (result.length > 0) return result;\n return null;\n }\n\n // --- PathTracker state ---\n let ptDepth = 0;\n let ptInString = false;\n let ptEscapeNext = false;\n let ptContextStack: ('o' | 'a')[] = []; // object or array at each level\n let ptKeyStack: (string | null)[] = []; // current key at each depth\n let ptIndexStack: (number | null)[] = []; // current array index at each depth\n let ptValueStartStack: number[] = []; // byte offset where value started\n let ptSkipDepth = -1; // if >= 0, we're inside a skipped path\n let ptExpectingKey = false;\n let ptAfterColon = false;\n let ptKeyAccum = '';\n let ptAccumulatingKey = false;\n let ptStringValueStart = -1;\n let ptInStringValue = false;\n let ptDeltaAccum = '';\n let ptDeltaByteStart = 0; // byte offset where current delta accumulation started\n let ptInScalar = false; // tracking a scalar that may span chunks\n let ptScalarStart = -1; // byte offset where current scalar started\n\n // --- Live document builder ---\n // Incrementally builds a JS object/array as bytes are scanned.\n // getValue() returns this growing object. O(n) total materialization.\n let ldRoot: unknown = undefined; // the growing root value\n let ldStack: (Record<string, unknown> | unknown[])[] = []; // container stack\n let ldCurrentKey: string | null = null; // pending key for object assignment\n let ldActiveKey: string | null = null; // key used for current string being updated\n let ldStringAccum = ''; // accumulating string value\n let ldInStringValue = false; // currently inside a string value\n let ldScalarAccum = ''; // accumulating scalar chars\n\n function ldSetValue(value: unknown) {\n if (ldStack.length === 0) {\n ldRoot = value;\n return;\n }\n const parent = ldStack[ldStack.length - 1];\n if (Array.isArray(parent)) {\n parent.push(value);\n } else if (ldCurrentKey !== null) {\n parent[ldCurrentKey] = value;\n ldActiveKey = ldCurrentKey; // remember key for in-place updates\n ldCurrentKey = null;\n }\n }\n\n // Update a string/scalar value in-place (for partial strings being built)\n function ldUpdateString(str: string) {\n if (ldStack.length === 0) {\n ldRoot = str;\n return;\n }\n const parent = ldStack[ldStack.length - 1];\n if (Array.isArray(parent)) {\n if (parent.length > 0) parent[parent.length - 1] = str;\n else parent.push(str);\n } else if (ldActiveKey !== null) {\n parent[ldActiveKey] = str;\n }\n }\n\n function ldReset() {\n ldRoot = undefined;\n ldStack.length = 0;\n ldCurrentKey = null;\n ldActiveKey = null;\n ldStringAccum = '';\n ldInStringValue = false;\n ldScalarAccum = '';\n }\n\n function ptReset() {\n ptDepth = 0; ptInString = false; ptEscapeNext = false;\n ptContextStack.length = 0; ptKeyStack.length = 0;\n ptIndexStack.length = 0; ptValueStartStack.length = 0;\n ptSkipDepth = -1; ptExpectingKey = false; ptAfterColon = false;\n ptKeyAccum = ''; ptAccumulatingKey = false;\n ptStringValueStart = -1; ptInStringValue = false;\n ptDeltaAccum = ''; ptDeltaByteStart = 0;\n ptInScalar = false; ptScalarStart = -1;\n ldReset();\n }\n\n /** Unified path matcher: exact = segments.length must equal depth, prefix = <= depth.\n * Returns wildcard matches on success, null on failure. */\n function matchPath(segments: PathSegment[], exact: boolean): (string | number)[] | null {\n const len = segments.length;\n if (exact ? len !== ptDepth : len > ptDepth) return null;\n const matches: (string | number)[] = [];\n for (let s = 0; s < len; s++) {\n const seg = segments[s];\n const key = ptKeyStack[s], idx = ptIndexStack[s];\n if (seg === '*') matches.push(idx !== null ? idx : (key ?? ''));\n else if (typeof seg === 'number' ? idx !== seg : key !== seg) return null;\n }\n return matches;\n }\n\n function isPathSkipped(): boolean {\n return skipPatterns.length > 0 && skipPatterns.some(p => matchPath(p, false) !== null);\n }\n\n function fireValueComplete(valueBytes: Uint8Array, offset: number, length: number) {\n if (pathSubs.length === 0) return;\n const resolvedPath = buildResolvedPath(ptKeyStack, ptIndexStack, ptDepth);\n for (const sub of pathSubs) {\n const matches = matchPath(sub.segments, true);\n if (!matches) continue;\n let value: unknown;\n try { value = JSON.parse(utf8Decoder.decode(valueBytes)); } catch { continue; }\n if (sub.schema) {\n const result = sub.schema.safeParse(value);\n if (!result.success) continue;\n value = result.data;\n }\n const event: PathEvent = { type: 'value', path: resolvedPath, value, offset, length, matches };\n for (let i = matches.length - 1; i >= 0; i--) {\n const m = matches[i];\n if (typeof m === 'number' && event.index === undefined) event.index = m;\n if (typeof m === 'string' && event.key === undefined) event.key = m;\n }\n sub.callback(event as any);\n }\n }\n\n function fireDelta(value: string, offset: number, length: number) {\n if (deltaSubs.length === 0) return;\n const resolvedPath = buildResolvedPath(ptKeyStack, ptIndexStack, ptDepth);\n for (const sub of deltaSubs) {\n if (!matchPath(sub.segments, true)) continue;\n sub.callback({ type: 'delta', path: resolvedPath, value, offset, length });\n }\n }\n\n function ptScan(buf: Uint8Array, from: number, to: number) {\n for (let i = from; i < to; i++) {\n const c = buf[i];\n\n // Check if we're continuing a scalar from a previous chunk\n if (ptInScalar) {\n if (c === 0x2C || c === 0x7D || c === 0x5D || c === 0x20 || c === 0x0A || c === 0x0D || c === 0x09) {\n // Scalar ended — fire value complete for the whole span\n const scalarLen = i - ptScalarStart;\n fireValueComplete(buf.slice(ptScalarStart, i), ptScalarStart, scalarLen);\n // Live doc: finalize scalar\n try { ldSetValue(JSON.parse(ldScalarAccum)); } catch { ldSetValue(null); }\n ldScalarAccum = '';\n ptInScalar = false;\n ptScalarStart = -1;\n // Re-process this delimiter char (it may be comma/close bracket)\n i--;\n continue;\n }\n // Still inside the scalar, keep scanning\n ldScalarAccum += B2C[c];\n continue;\n }\n\n if (ptEscapeNext) {\n ptEscapeNext = false;\n if (ptInStringValue && ptSkipDepth < 0) {\n // Decode escape for delta\n let decoded: string;\n switch (c) {\n case 0x6E: decoded = '\\n'; break; // n\n case 0x72: decoded = '\\r'; break; // r\n case 0x74: decoded = '\\t'; break; // t\n case 0x22: decoded = '\"'; break; // \"\n case 0x5C: decoded = '\\\\'; break; // \\\n case 0x2F: decoded = '/'; break; // /\n case 0x62: decoded = '\\b'; break; // b\n case 0x66: decoded = '\\f'; break; // f\n default: decoded = B2C[c]; break;\n }\n ptDeltaAccum += decoded;\n // Live doc: accumulate decoded escape char (batched — flushed at string close or chunk end)\n if (ldInStringValue) {\n ldStringAccum += decoded;\n }\n if (ptAccumulatingKey) ptKeyAccum += decoded;\n } else if (ptAccumulatingKey) {\n ptKeyAccum += B2C[c];\n }\n continue;\n }\n\n if (ptInString) {\n if (c === 0x5C) { // backslash\n ptEscapeNext = true;\n continue;\n }\n if (c === 0x22) { // closing quote\n ptInString = false;\n if (ptAccumulatingKey) {\n ptAccumulatingKey = false;\n // Store key at parent depth (ptDepth-1) since we're inside the container\n if (ptDepth > 0) ptKeyStack[ptDepth - 1] = ptKeyAccum;\n // Live doc: store key for next value assignment\n ldCurrentKey = ptKeyAccum;\n ptKeyAccum = '';\n continue;\n }\n // End of string value\n if (ptInStringValue && ptSkipDepth < 0) {\n // Flush final delta — use tracked byte offsets, not decoded char count\n if (ptDeltaAccum && deltaSubs.length > 0) {\n const deltaByteLen = i - ptDeltaByteStart; // raw bytes from start to closing quote\n fireDelta(ptDeltaAccum, ptDeltaByteStart, deltaByteLen);\n }\n ptDeltaAccum = '';\n // Fire value complete for the string\n const start = ptStringValueStart;\n const len = i + 1 - start;\n fireValueComplete(buf.slice(start, i + 1), start, len);\n // Live doc: final update (value already in parent from ldSetValue('') at open)\n ldUpdateString(ldStringAccum);\n ldStringAccum = '';\n ldInStringValue = false;\n }\n ptInStringValue = false;\n ptStringValueStart = -1;\n continue;\n }\n // Regular string character\n if (ptInStringValue && ptSkipDepth < 0) {\n const ch = B2C[c];\n ptDeltaAccum += ch;\n // Live doc: accumulate string char (batched — flushed at string close or chunk end)\n if (ldInStringValue) ldStringAccum += ch;\n if (ptAccumulatingKey) ptKeyAccum += ch;\n } else if (ptAccumulatingKey) {\n ptKeyAccum += B2C[c];\n }\n continue;\n }\n\n // Not in string\n switch (c) {\n case 0x7B: { // {\n ptContextStack[ptDepth] = 'o';\n ptKeyStack[ptDepth] = null;\n ptIndexStack[ptDepth] = null;\n ptValueStartStack[ptDepth] = i;\n ptDepth++;\n ptExpectingKey = true;\n ptAfterColon = false;\n // Check if we should skip this depth\n if (ptSkipDepth < 0 && isPathSkipped()) {\n ptSkipDepth = ptDepth - 1;\n }\n // Live doc: create object and push to stack\n const obj: Record<string, unknown> = {};\n ldSetValue(obj);\n ldStack.push(obj);\n break;\n }\n case 0x5B: { // [\n ptContextStack[ptDepth] = 'a';\n ptKeyStack[ptDepth] = null;\n ptIndexStack[ptDepth] = 0;\n ptValueStartStack[ptDepth] = i;\n ptDepth++;\n ptExpectingKey = false;\n ptAfterColon = false;\n if (ptSkipDepth < 0 && isPathSkipped()) {\n ptSkipDepth = ptDepth - 1;\n }\n // Live doc: create array and push to stack\n const arr: unknown[] = [];\n ldSetValue(arr);\n ldStack.push(arr);\n break;\n }\n case 0x7D: // }\n case 0x5D: { // ]\n ptDepth--;\n const wasSkipped = ptSkipDepth >= 0;\n if (wasSkipped && ptDepth <= ptSkipDepth) {\n ptSkipDepth = -1;\n }\n // Fire value complete for the container (only if not exiting a skipped path)\n if (ptDepth >= 0 && ptSkipDepth < 0 && !wasSkipped) {\n const start = ptValueStartStack[ptDepth];\n const len = i + 1 - start;\n fireValueComplete(buf.slice(start, i + 1), start, len);\n }\n // Restore parent context\n if (ptDepth > 0) {\n const parentCtx = ptContextStack[ptDepth - 1];\n ptExpectingKey = parentCtx === 'o';\n ptAfterColon = false;\n }\n // Live doc: pop container from stack\n ldStack.pop();\n break;\n }\n case 0x22: { // opening quote\n ptInString = true;\n if (ptExpectingKey && ptSkipDepth < 0) {\n // Start accumulating key\n ptAccumulatingKey = true;\n ptKeyAccum = '';\n } else if (ptAfterColon || ptDepth === 0 || (ptDepth > 0 && ptContextStack[ptDepth - 1] === 'a')) {\n // String value — only track if not in a skipped path\n if (ptSkipDepth < 0 && !isPathSkipped()) {\n ptInStringValue = true;\n ptStringValueStart = i;\n ptDeltaAccum = '';\n ptDeltaByteStart = i + 1; // byte after opening quote\n // Live doc: start string value accumulation\n ldStringAccum = '';\n ldInStringValue = true;\n // Push an empty string as placeholder so updates work\n ldSetValue('');\n }\n ptAfterColon = false;\n }\n break;\n }\n case 0x3A: { // colon\n ptExpectingKey = false;\n ptAfterColon = true;\n // Live doc: set null placeholder for pending key\n if (ldCurrentKey !== null && ldStack.length > 0) {\n const parent = ldStack[ldStack.length - 1];\n if (!Array.isArray(parent)) {\n (parent as Record<string, unknown>)[ldCurrentKey] = null;\n ldActiveKey = ldCurrentKey;\n }\n }\n break;\n }\n case 0x2C: { // comma\n // In array: increment index\n if (ptDepth > 0 && ptContextStack[ptDepth - 1] === 'a') {\n const idx = ptIndexStack[ptDepth - 1];\n ptIndexStack[ptDepth - 1] = (idx ?? -1) + 1;\n // Check skip for new array index\n if (ptSkipDepth < 0 && isPathSkipped()) {\n ptSkipDepth = ptDepth - 1;\n }\n }\n // In object: expect next key\n if (ptDepth > 0 && ptContextStack[ptDepth - 1] === 'o') {\n ptExpectingKey = true;\n ptKeyStack[ptDepth - 1] = null;\n }\n ptAfterColon = false;\n break;\n }\n default: {\n // Scalar values (numbers, true, false, null)\n if (ptAfterColon || ptDepth === 0 || (ptDepth > 0 && ptContextStack[ptDepth - 1] === 'a')) {\n if (c >= 0x30 && c <= 0x39 || c === 0x2D || c === 0x74 || c === 0x66 || c === 0x6E) {\n // Find end of scalar\n if (ptSkipDepth < 0 && !isPathSkipped()) {\n let j = i + 1;\n while (j < to) {\n const sc = buf[j];\n if (sc === 0x2C || sc === 0x7D || sc === 0x5D || sc === 0x20 || sc === 0x0A || sc === 0x0D || sc === 0x09) break;\n j++;\n }\n if (j < to) {\n // Complete scalar within this chunk\n fireValueComplete(buf.slice(i, j), i, j - i);\n // Live doc: parse and set scalar value\n const scalarStr = utf8Decoder.decode(buf.slice(i, j));\n try { ldSetValue(JSON.parse(scalarStr)); } catch { ldSetValue(null); }\n i = j - 1; // -1 because loop will increment\n } else {\n // Scalar extends past this chunk — track it\n ptInScalar = true;\n ptScalarStart = i;\n ldScalarAccum = utf8Decoder.decode(buf.slice(i, to));\n i = to; // skip to end, will resume on next feed\n }\n }\n ptAfterColon = false;\n }\n }\n break;\n }\n }\n }\n\n // Flush accumulated string to live doc parent (batched update)\n if (ldInStringValue && ldStringAccum) {\n ldUpdateString(ldStringAccum);\n }\n\n // Flush accumulated deltas at end of each feed for in-progress strings\n // This ensures onDelta fires incrementally per feed(), not just at string close\n if (ptInStringValue && ptDeltaAccum.length > 0 && ptSkipDepth < 0 && deltaSubs.length > 0) {\n fireDelta(ptDeltaAccum, ptDeltaByteStart, to - ptDeltaByteStart);\n ptDeltaAccum = '';\n ptDeltaByteStart = to;\n }\n }\n\n // --- EventParser object ---\n const self: EventParser = {\n on(path: string, ...args: any[]): EventParser {\n let schema: { safeParse: Function } | undefined;\n let callback: (event: PathEvent) => void;\n if (args.length === 2 && typeof args[0] === 'object' && args[0] !== null && 'safeParse' in args[0]) {\n schema = args[0];\n callback = args[1];\n } else {\n callback = args[0];\n }\n pathSubs.push({ segments: compilePath(path), callback, schema });\n return self;\n },\n\n onDelta(path: string, callback: (event: DeltaEvent) => void): EventParser {\n deltaSubs.push({ segments: compilePath(path), callback });\n return self;\n },\n\n onText(callback: (text: string) => void): EventParser {\n textCallbacks.push(callback);\n return self;\n },\n\n skip(...paths: string[]): EventParser {\n for (const p of paths) skipPatterns.push(compilePath(p));\n return self;\n },\n\n off(path: string, callback?: Function): EventParser {\n const compiled = compilePath(path);\n const eq = (a: PathSegment[], b: PathSegment[]) =>\n a.length === b.length && a.every((s, i) => s === b[i]);\n const remove = (subs: Sub[]) => {\n for (let i = subs.length - 1; i >= 0; i--) {\n if (eq(subs[i].segments, compiled) && (!callback || subs[i].callback === callback))\n subs.splice(i, 1);\n }\n };\n remove(pathSubs);\n remove(deltaSubs);\n return self;\n },\n\n feed(chunk: string | Uint8Array): FeedStatus {\n if (destroyed) throw new Error(\"EventParser already destroyed\");\n\n // Run through JSON seeker first\n let jsonContent: string | Uint8Array | null;\n if (typeof chunk === 'string') {\n jsonContent = seekerFeed(chunk);\n if (jsonContent === null) return FEED_STATUS[engine.stream_get_status(streamId)]!;\n } else if (seekerState === SEEKER_FEEDING) {\n // Fast path: skip string conversion when seeker is already feeding JSON\n jsonContent = chunk;\n } else {\n const str = utf8Decoder.decode(chunk);\n const result = seekerFeed(str);\n if (result === null) return FEED_STATUS[engine.stream_get_status(streamId)]!;\n jsonContent = encoder.encode(result);\n }\n\n // Feed to WASM stream\n const { ptr, len } = writeToWasm(jsonContent, feedBuf, 0, 4096);\n const prevLen = engine.stream_get_buffer_len(streamId);\n const status = engine.stream_feed(streamId, ptr, len);\n const newLen = engine.stream_get_buffer_len(streamId);\n\n // Scan new bytes with PathTracker (always runs — needed for live document builder)\n if (newLen > prevLen) {\n const bufPtr = (engine.stream_get_buffer_ptr(streamId) >>> 0);\n // For end_early/complete: only scan up to the value boundary\n const scanEnd = (status === 1 || status === 3)\n ? Math.min(newLen, engine.stream_get_value_len(streamId))\n : newLen;\n if (scanEnd > prevLen) {\n const wasmBuf = new Uint8Array(engine.memory.buffer, bufPtr, scanEnd);\n ptScan(wasmBuf, prevLen, scanEnd);\n }\n // Finalize pending scalar on complete/end_early\n if ((status === 1 || status === 3) && ptInScalar && ldScalarAccum) {\n try { ldSetValue(JSON.parse(ldScalarAccum)); } catch { ldSetValue(null); }\n ldScalarAccum = '';\n ptInScalar = false;\n ptScalarStart = -1;\n }\n }\n\n const feedStatus = FEED_STATUS[status] || \"error\";\n\n // Multi-root handling: drain all complete values\n if (multiRoot && (feedStatus === 'complete' || feedStatus === 'end_early')) {\n let loopGuard = 0;\n while (loopGuard++ < 10000) {\n const curStatus = engine.stream_get_status(streamId);\n if (curStatus !== 1 && curStatus !== 3) break; // not complete/end_early\n\n // Copy value bytes before reset (SIMD padding would overwrite remaining)\n const bp = (engine.stream_get_buffer_ptr(streamId) >>> 0);\n const vl = engine.stream_get_value_len(streamId);\n const valueCopy = new Uint8Array(vl + 64);\n valueCopy.set(new Uint8Array(engine.memory.buffer, bp, vl));\n // Pad copy for SIMD safety\n valueCopy.fill(0x20, vl);\n\n // Reset stream for next value BEFORE parsing (preserves remaining bytes)\n const remaining = engine.stream_reset_for_next(streamId);\n ptReset();\n\n // Now parse the copied value bytes\n const parsePtr = engine.alloc(valueCopy.length) >>> 0;\n if (parsePtr) {\n new Uint8Array(engine.memory.buffer, parsePtr, valueCopy.length).set(valueCopy);\n const did = engine.doc_parse(parsePtr, vl);\n engine.dealloc(parsePtr, valueCopy.length);\n if (did >= 0 && onRootCb) {\n onRootCb({ type: 'root', index: rootIndex++, value: buildDocRoot(did) });\n }\n }\n\n // Scan remaining bytes with PathTracker\n if (remaining > 0 && (pathSubs.length > 0 || deltaSubs.length > 0)) {\n const nbp = (engine.stream_get_buffer_ptr(streamId) >>> 0);\n const nbl = engine.stream_get_buffer_len(streamId);\n if (nbl > 0) {\n const wb = new Uint8Array(engine.memory.buffer, nbp, nbl);\n ptScan(wb, 0, nbl);\n }\n }\n\n if (remaining === 0) break;\n }\n return FEED_STATUS[engine.stream_get_status(streamId)] || \"incomplete\";\n }\n\n return feedStatus;\n },\n\n getValue(): unknown | undefined {\n if (destroyed) throw new Error(\"EventParser already destroyed\");\n const status = engine.stream_get_status(streamId);\n if (status === 2) throw new SyntaxError(\"VectorJSON: Parse error in stream\");\n\n if (status === 0) {\n // incomplete — return the incrementally-built live document\n let value: unknown = ldRoot;\n\n // Handle pending values not yet committed to ldRoot\n if (ptInScalar && ldScalarAccum) {\n const partial = ldScalarAccum;\n const completed = partial.startsWith('t') ? 'true'\n : partial.startsWith('f') ? 'false'\n : partial.startsWith('n') ? 'null'\n : partial;\n try {\n const parsed = JSON.parse(completed);\n if (ldStack.length === 0) value = parsed;\n } catch { /* leave as-is */ }\n } else if (ldInStringValue && ldStack.length === 0) {\n value = ldStringAccum;\n }\n\n if (value === undefined) return undefined;\n return value;\n }\n\n // complete or end_early — do a final WASM parse for correctness\n const bufPtr = (engine.stream_get_buffer_ptr(streamId) >>> 0);\n const valueLen = engine.stream_get_value_len(streamId);\n new Uint8Array(engine.memory.buffer, bufPtr + valueLen, 64).fill(0x20);\n const docId = engine.doc_parse(bufPtr, valueLen);\n if (docId < 0) {\n const errorCode = engine.get_error_code();\n const msg = ERROR_MESSAGES[errorCode] || `Parse error (code ${errorCode})`;\n throw new SyntaxError(`VectorJSON: ${msg}`);\n }\n return buildDocRoot(docId);\n },\n\n getRemaining(): Uint8Array | null {\n if (destroyed) return null;\n const rPtr = (engine.stream_get_remaining_ptr(streamId) >>> 0);\n const rLen = engine.stream_get_remaining_len(streamId);\n if (rLen > 0) {\n const copy = new Uint8Array(rLen);\n copy.set(new Uint8Array(engine.memory.buffer, rPtr, rLen));\n return copy;\n }\n return null;\n },\n\n getStatus(): FeedStatus {\n if (destroyed) return \"error\";\n return FEED_STATUS[engine.stream_get_status(streamId)] || \"error\";\n },\n\n getRawBuffer(): ArrayBuffer | null {\n if (destroyed) return null;\n const bufPtr = engine.stream_get_buffer_ptr(streamId) >>> 0;\n const bufLen = engine.stream_get_buffer_len(streamId);\n if (bufLen === 0) return null;\n const copy = new ArrayBuffer(bufLen);\n new Uint8Array(copy).set(new Uint8Array(engine.memory.buffer, bufPtr, bufLen));\n return copy;\n },\n\n destroy(): void {\n if (!destroyed) {\n engine.stream_destroy(streamId);\n destroyed = true;\n }\n },\n };\n\n return self;\n },\n\n createParser(schema?: { safeParse: (v: unknown) => { success: boolean; data?: unknown } }): StreamingParser {\n const streamId = engine.stream_create();\n if (streamId < 0) {\n throw new Error(\"VectorJSON: Failed to create streaming parser (max 4 concurrent)\");\n }\n\n let destroyed = false;\n let cachedValue: unknown = UNCACHED;\n let cachedRemaining: Uint8Array | null | undefined; // undefined = not yet cached\n\n // --- Live document builder state (same approach as EventParser) ---\n let ldRoot: unknown = undefined;\n let ldStack: (Record<string, unknown> | unknown[])[] = [];\n let ldCurrentKey: string | null = null;\n let ldActiveKey: string | null = null;\n let ldStringAccum = '';\n let ldInStringValue = false;\n let ldScalarAccum = '';\n\n // Byte scanner state\n let scanInString = false;\n let scanEscapeNext = false;\n let scanDepth = 0;\n let scanContext: ('o' | 'a')[] = [];\n let scanExpectingKey = false;\n let scanAfterColon = false;\n let scanKeyAccum = '';\n let scanAccumulatingKey = false;\n let scanInScalar = false;\n\n function spSetValue(value: unknown) {\n if (ldStack.length === 0) { ldRoot = value; return; }\n const parent = ldStack[ldStack.length - 1];\n if (Array.isArray(parent)) { parent.push(value); }\n else if (ldCurrentKey !== null) { parent[ldCurrentKey] = value; ldActiveKey = ldCurrentKey; ldCurrentKey = null; }\n }\n\n function spUpdateString(str: string) {\n if (ldStack.length === 0) { ldRoot = str; return; }\n const parent = ldStack[ldStack.length - 1];\n if (Array.isArray(parent)) {\n if (parent.length > 0) parent[parent.length - 1] = str;\n else parent.push(str);\n } else if (ldActiveKey !== null) { parent[ldActiveKey] = str; }\n }\n\n /** Scan new bytes to incrementally build the live JS document */\n function spScan(buf: Uint8Array, from: number, to: number) {\n for (let i = from; i < to; i++) {\n const c = buf[i];\n\n if (scanInScalar) {\n if (c === 0x2C || c === 0x7D || c === 0x5D || c === 0x20 || c === 0x0A || c === 0x0D || c === 0x09) {\n try { spSetValue(JSON.parse(ldScalarAccum)); } catch { spSetValue(null); }\n ldScalarAccum = '';\n scanInScalar = false;\n i--; continue;\n }\n ldScalarAccum += B2C[c];\n continue;\n }\n\n if (scanEscapeNext) {\n scanEscapeNext = false;\n if (ldInStringValue) {\n let decoded: string;\n switch (c) {\n case 0x6E: decoded = '\\n'; break;\n case 0x72: decoded = '\\r'; break;\n case 0x74: decoded = '\\t'; break;\n case 0x22: decoded = '\"'; break;\n case 0x5C: decoded = '\\\\'; break;\n case 0x2F: decoded = '/'; break;\n case 0x62: decoded = '\\b'; break;\n case 0x66: decoded = '\\f'; break;\n default: decoded = B2C[c]; break;\n }\n ldStringAccum += decoded;\n }\n if (scanAccumulatingKey) scanKeyAccum += B2C[c];\n continue;\n }\n\n if (scanInString) {\n if (c === 0x5C) { scanEscapeNext = true; continue; }\n if (c === 0x22) {\n scanInString = false;\n if (scanAccumulatingKey) {\n scanAccumulatingKey = false;\n ldCurrentKey = scanKeyAccum;\n scanKeyAccum = '';\n continue;\n }\n if (ldInStringValue) {\n // Final update at string close (value already in parent from spSetValue('') at open)\n spUpdateString(ldStringAccum);\n ldStringAccum = '';\n ldInStringValue = false;\n }\n continue;\n }\n if (ldInStringValue) ldStringAccum += B2C[c];\n if (scanAccumulatingKey) scanKeyAccum += B2C[c];\n continue;\n }\n\n switch (c) {\n case 0x7B: {\n scanContext[scanDepth] = 'o';\n scanDepth++;\n scanExpectingKey = true;\n scanAfterColon = false;\n const obj: Record<string, unknown> = {};\n spSetValue(obj);\n ldStack.push(obj);\n break;\n }\n case 0x5B: {\n scanContext[scanDepth] = 'a';\n scanDepth++;\n scanExpectingKey = false;\n scanAfterColon = false;\n const arr: unknown[] = [];\n spSetValue(arr);\n ldStack.push(arr);\n break;\n }\n case 0x7D: case 0x5D: {\n scanDepth--;\n ldStack.pop();\n if (scanDepth > 0) {\n scanExpectingKey = scanContext[scanDepth - 1] === 'o';\n scanAfterColon = false;\n }\n break;\n }\n case 0x22: {\n scanInString = true;\n const isValue = scanAfterColon || scanDepth === 0 || (scanDepth > 0 && scanContext[scanDepth - 1] === 'a');\n if (scanExpectingKey) {\n scanAccumulatingKey = true;\n scanKeyAccum = '';\n } else if (isValue) {\n ldStringAccum = '';\n ldInStringValue = true;\n spSetValue('');\n scanAfterColon = false;\n }\n break;\n }\n case 0x3A: {\n scanExpectingKey = false;\n scanAfterColon = true;\n // Set null placeholder for the pending key — will be overwritten\n // when the real value arrives. This ensures getValue() during\n // incomplete streaming shows {\"key\": null} instead of {}.\n if (ldCurrentKey !== null && ldStack.length > 0) {\n const parent = ldStack[ldStack.length - 1];\n if (!Array.isArray(parent)) {\n (parent as Record<string, unknown>)[ldCurrentKey] = null;\n ldActiveKey = ldCurrentKey;\n }\n }\n break;\n }\n case 0x2C: {\n if (scanDepth > 0 && scanContext[scanDepth - 1] === 'o') {\n scanExpectingKey = true;\n }\n scanAfterColon = false;\n break;\n }\n default: {\n const isValuePos = scanAfterColon || scanDepth === 0 || (scanDepth > 0 && scanContext[scanDepth - 1] === 'a');\n if (isValuePos) {\n if (c >= 0x30 && c <= 0x39 || c === 0x2D || c === 0x74 || c === 0x66 || c === 0x6E) {\n let j = i + 1;\n while (j < to) {\n const sc = buf[j];\n if (sc === 0x2C || sc === 0x7D || sc === 0x5D || sc === 0x20 || sc === 0x0A || sc === 0x0D || sc === 0x09) break;\n j++;\n }\n if (j < to) {\n const scalarStr = utf8Decoder.decode(buf.slice(i, j));\n try { spSetValue(JSON.parse(scalarStr)); } catch { spSetValue(null); }\n i = j - 1;\n } else {\n scanInScalar = true;\n ldScalarAccum = utf8Decoder.decode(buf.slice(i, to));\n i = to;\n }\n scanAfterColon = false;\n }\n }\n break;\n }\n }\n }\n\n // End-of-chunk: flush accumulated string to parent (batched update)\n if (ldInStringValue && ldStringAccum) {\n spUpdateString(ldStringAccum);\n }\n\n // End-of-chunk: if we're still accumulating a scalar and stream says complete,\n // finalize it now (root-level scalars like \"42\" end at end-of-buffer)\n if (scanInScalar) {\n const status = engine.stream_get_status(streamId);\n if (status === 1 || status === 3) { // complete or end_early\n // Autocomplete partial keywords (e.g., \"tr\" → \"true\")\n const s = ldScalarAccum;\n const completed = s.startsWith('t') ? 'true'\n : s.startsWith('f') ? 'false'\n : s.startsWith('n') ? 'null' : s;\n try { spSetValue(JSON.parse(completed)); } catch { spSetValue(null); }\n ldScalarAccum = '';\n scanInScalar = false;\n }\n }\n }\n\n const ensureRemaining = () => {\n if (cachedRemaining !== undefined) return;\n const rPtr = (engine.stream_get_remaining_ptr(streamId) >>> 0);\n const rLen = engine.stream_get_remaining_len(streamId);\n if (rLen > 0) {\n cachedRemaining = new Uint8Array(rLen);\n cachedRemaining.set(new Uint8Array(engine.memory.buffer, rPtr, rLen));\n } else {\n cachedRemaining = null;\n }\n };\n\n let prevLen = 0;\n\n return {\n feed(chunk: Uint8Array | string): FeedStatus {\n if (destroyed) throw new Error(\"Parser already destroyed\");\n const chunkLen = typeof chunk === \"string\" ? chunk.length : chunk.byteLength;\n if (chunkLen === 0) return FEED_STATUS[engine.stream_get_status(streamId)]!;\n const { ptr, len } = writeToWasm(chunk, feedBuf, 0, 4096);\n const rawStatus = engine.stream_feed(streamId, ptr, len);\n // Scan new bytes for live document building\n const newLen = engine.stream_get_buffer_len(streamId);\n if (newLen > prevLen) {\n const bufPtr = (engine.stream_get_buffer_ptr(streamId) >>> 0);\n // For end_early/complete: only scan up to the value boundary, not trailing data\n const scanEnd = (rawStatus === 1 || rawStatus === 3)\n ? Math.min(newLen, engine.stream_get_value_len(streamId))\n : newLen;\n if (scanEnd > prevLen) {\n const wasmBuf = new Uint8Array(engine.memory.buffer, bufPtr, scanEnd);\n spScan(wasmBuf, prevLen, scanEnd);\n }\n prevLen = newLen;\n }\n return FEED_STATUS[rawStatus] || \"error\";\n },\n\n getValue(): unknown | undefined {\n if (destroyed) throw new Error(\"Parser already destroyed\");\n if (cachedValue !== UNCACHED) return cachedValue;\n\n const status = engine.stream_get_status(streamId);\n if (status === 2) {\n throw new SyntaxError(\"VectorJSON: Parse error in stream\");\n }\n\n if (status === 0) {\n // incomplete — return the incrementally-built live document\n // The returned object IS the live object — it grows as more data arrives.\n // Callers get a reference that automatically reflects future feed() calls.\n let value: unknown = ldRoot;\n\n // Handle pending partial values that haven't been committed to ldRoot yet:\n if (scanInScalar && ldScalarAccum) {\n // Pending scalar: try to autocomplete (e.g., \"tr\" → true)\n const partial = ldScalarAccum;\n const completed = partial.startsWith('t') ? 'true'\n : partial.startsWith('f') ? 'false'\n : partial.startsWith('n') ? 'null'\n : partial;\n try {\n const parsed = JSON.parse(completed);\n if (ldStack.length === 0) value = parsed;\n } catch { /* partial number like \"1.\" — leave as-is */ }\n } else if (ldInStringValue && ldStack.length === 0) {\n // Root-level string still being accumulated\n value = ldStringAccum;\n }\n\n if (value === undefined) return undefined;\n // Incomplete: return partial value without schema gating.\n // User checks getStatus() to know it's not final.\n return value;\n }\n\n // complete or end_early — finalize any pending scalar\n if (scanInScalar && ldScalarAccum) {\n try { spSetValue(JSON.parse(ldScalarAccum)); } catch { spSetValue(null); }\n ldScalarAccum = '';\n scanInScalar = false;\n }\n ensureRemaining();\n\n let value: unknown = ldRoot;\n if (schema) {\n const result = schema.safeParse(value);\n if (!result.success) return (cachedValue = undefined) as undefined;\n value = result.data;\n }\n return (cachedValue = value);\n },\n\n getRemaining(): Uint8Array | null {\n if (destroyed) return null;\n ensureRemaining();\n return cachedRemaining!;\n },\n\n getStatus(): FeedStatus {\n if (destroyed) return \"error\";\n const status = engine.stream_get_status(streamId);\n return FEED_STATUS[status] || \"error\";\n },\n\n getRawBuffer(): ArrayBuffer | null {\n if (destroyed) return null;\n const bufPtr = engine.stream_get_buffer_ptr(streamId) >>> 0;\n const bufLen = engine.stream_get_buffer_len(streamId);\n if (bufLen === 0) return null;\n const copy = new ArrayBuffer(bufLen);\n new Uint8Array(copy).set(new Uint8Array(engine.memory.buffer, bufPtr, bufLen));\n return copy;\n },\n\n destroy(): void {\n if (!destroyed) {\n engine.stream_destroy(streamId);\n destroyed = true;\n cachedValue = UNCACHED;\n }\n },\n };\n },\n };\n\n return _instance;\n}\n\n// --- Top-level await: auto-initialize with embedded WASM ---\nconst _vj = await init();\n\n/** Parse a JSON string or Uint8Array. Synchronous — no init needed. */\nexport const parse = _vj.parse;\n\n/** Parse partial/incomplete JSON. Compatible with Vercel AI SDK's parsePartialJson. */\nexport const parsePartialJson = _vj.parsePartialJson;\n\n/** Deep-compare two values for structural equality. WASM-accelerated for VJ proxies. */\nexport const deepCompare = _vj.deepCompare;\n\n/** Create a streaming parser for incremental JSON parsing. */\nexport const createParser = _vj.createParser;\n\n/** Create an event-driven streaming parser with path subscriptions. */\nexport const createEventParser = _vj.createEventParser;\n\n/** Eagerly materialize a lazy proxy into plain JS objects. */\nexport const materialize = _vj.materialize;\n"
|
|
5
|
+
"// AUTO-GENERATED by scripts/embed-wasm.mjs — do not edit\nexport const wasmBase64 = \"AGFzbQEAAAABaRBgAX8Bf2ACf38Bf2AEf39/fwF/YAJ/fwBgBn9/f39/fwF/YAN/f38AYAN/f38Bf2AFf39/f38AYAABf2ABfwBgA39+fgBgAn9+AX9gA39+fwF/YAJ/fwF8YAV/f39/fwF/YAN/f34BfwM9PAAFBQMFCAgJBgkDAAAAAAMAAAAAAQUFBAIHAwMKAQMDCwwJAQ0BAAEBAQIGCAYGAQIIBgUOBAQEAAQKDwQFAXABBQUFAwEAEgYJAX8BQYCAwAALB8QEIAZtZW1vcnkCAAVhbGxvYwAAB2RlYWxsb2MAAw5nZXRfZXJyb3JfY29kZQAFDXN0cmVhbV9jcmVhdGUABg5zdHJlYW1fZGVzdHJveQAHC3N0cmVhbV9mZWVkAAgRc3RyZWFtX2dldF9zdGF0dXMACxVzdHJlYW1fZ2V0X2J1ZmZlcl9wdHIADBRzdHJlYW1fZ2V0X3ZhbHVlX2xlbgANGHN0cmVhbV9nZXRfcmVtYWluaW5nX3B0cgAOGHN0cmVhbV9nZXRfcmVtYWluaW5nX2xlbgAQFXN0cmVhbV9nZXRfYnVmZmVyX2xlbgARFXN0cmVhbV9nZXRfYnVmZmVyX2NhcAASFXN0cmVhbV9yZXNldF9mb3JfbmV4dAATCWRvY19wYXJzZQAUCGRvY19mcmVlACILZG9jX2dldF90YWcAIw5kb2NfZ2V0X251bWJlcgAkE2RvY19yZWFkX3N0cmluZ19yYXcAJRFkb2NfZ2V0X2lucHV0X3B0cgAmDWRvY19nZXRfY291bnQAJw9kb2NfZ2V0X3NyY19wb3MAKBNkb2NfZ2V0X2Nsb3NlX2luZGV4ACkOZG9jX2ZpbmRfZmllbGQAKg1kb2NfYmF0Y2hfcHRyACwSZG9jX2FycmF5X2VsZW1lbnRzAC0PZG9jX29iamVjdF9rZXlzAC4OY2xhc3NpZnlfaW5wdXQALw1nZXRfdmFsdWVfZW5kADESYXV0b2NvbXBsZXRlX2lucHV0ADIOZG9jX2RlZXBfZXF1YWwANAkKAQBBAQsEGDkXGQwCngUK69UEPDcBAn8jAEEQayIBJAAgAUEEakGI3sAAIAAQASABLwEMIQAgASgCBCECIAFBEGokAEEAIAIgABsLfgEBfyMAQTBrIgMkACADIAEpAgA3AwggA0EQaiADQQhqIAIQAiAA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AwRAIAAoAgAgAUGq1arVeiACGyADQQJBACAAKAIEKAIMEQcACwsYACABQQAgBCAEIAIgAyAEIAQQOUEBcRsL7wEBAn8jAEEQayIDJAAgAyACQR9xOgAPQQAhAAJAQX8gAUEEaiIEIAEgBEsbIgFBASACdCICIAEgAksbIgFBAWtnIgJFDQACQEEgIAJrIgJB//8DcUEDayIEQQ1JBEBCASACrYanIQIgBEECdCIEQZzAxgBqIgUoAgAiAUUNASAFIAEgAmpBBGsoAgA2AgAgASEADAILIAFBg4AEakEQdhA4IQAMAQsgBEHQwMYAaiIEKAIAIgFB//8DcUUEQEEBEDgiAUUNASAEIAEgAmo2AgAgASEADAELIAQgASACajYCACABIQALIANBEGokACAAC7ABACMAQRBrIgAkACAAIANBH3E6AA8CQEEgIAJBBGoiAkEBIAN0IgMgAiADSxsiAkEBa2drIgNB//8DcUEDayIEQQ1JBEAgAUIBIAOshqdqQQRrIARBAnRBnMDGAGoiAigCADYCAAwBCyABQgFBICACQYOABGpBEHZBAWtnayICrYanQRB0akEEayACQf//A3FBAnRBhMHGAGoiAigCADYCAAsgAiABNgIAIABBEGokAAs+AQJ/IAAgACgCBCICQQFqNgIEIAIgACgCACIDIAAoAghBA3RqaiABLQAIOgAAIAMgAkEDdGogASkCADcCAAuoEQIJfwR+IwBB8A5rIgMkACAAKAIIQQFqIQogACkDACELAkACQAJAA0AgC0KPzgBYBEADQCALQuMAWARAAkADQCALQgpURQRAIApBAWohCiALQgqAIQsMAQsLIANBCGpBAEHUA/wLACAAKAIQIgctAABBMEYNACAAKAIUIQUDQCAHIQkgCCEEIAUiBkUNAUEAIQJCACELQYDXwAAhBSAGIQgDQCACQRBGIAhBCElyIAIgBGpB+gVOckUEQCALQoDC1y9+IAIgCWopAABCsODAgYOGjJgwfSIMQgp+IAxCCIh8IgxCEIhC/4GAgPAfg0KBgICAgOIJfiAMQv+BgIDwH4NC5ICAgIDI0Ad+fEIgiHwhCyAFQUBrIQUgCEEIayEIIAJBCGohAgwBCwsDQCACIAlqIQcgAiAGRiACQRJLciACIARqIghBgAZKckUEQCALQgp+IActAABBMGutQv8Bg3whCyAFQQhqIQUgAkEBaiECDAELCyADQQhqIAUpAwAgCxAcIAYgAmshBSAIQYEGRw0ACyACIAlqIAYgAmsQHSEHIAAoAhwiBEUEQCAHQQFxDQcMBgsgB0EBcQ0GIAAoAhggBBAdQQFxRQ0FDAYLBSAKQQJqIQogC0LkAIAhCwwBCwsFIApBBGohCiALQpDOAIAhCwwBCwsgACgCHCIFRQ0CIAAoAhghAgJAAkAgBA0AIAIgBWohBwNAIAVFBEBBACEFDAMLIAItAABBMEcNASAFQQFrIQUgAkEBaiECDAALAAsgAiEHCwNAIAchCCAEIQAgBSIGRQRADAQLQQAhAkIAIQtBgNfAACEFIAYhBANAIAJBEEYgBEEISXIgACACakH6BU5yRQRAIAtCgMLXL34gAiAIaikAAEKw4MCBg4aMmDB9IgxCCn4gDEIIiHwiDEIQiEL/gYCA8B+DQoGAgICA4gl+IAxC/4GAgPAfg0LkgICAgMjQB358QiCIfCELIAVBQGshBSAEQQhrIQQgAkEIaiECDAELCwNAIAIgCGohByACIAZGIAJBEktyIAAgAmoiBEGABkpyRQRAIAtCCn4gBy0AAEEwa61C/wGDfCELIAVBCGohBSACQQFqIQIMAQsLIANBCGogBSkDACALEBwgBiACayEFIARBgQZHDQALIAIgCGogBiACaxAdQQFxDQELQYEGIQQMAQsgA0EIakIKQgEQHEGCBiEECwJAAkACQAJ+AkACQCAKIARrIgBBAE4EQCADQQhqIgYgABAeIAYgABAfQQAhBUIAIQsgAygC3AMhCCADKQMIIQ5BACECAkACQCADKALYAyIJDgIHAQALIANBEGohBiADIA43A+ADIANB6ANqIAZByAP8CgAAIAMgCDYCtAcgAyAJNgKwByADIA43A8AHIANB4ANqIAlBAWtB/wFxIgBBA3RqKQMAIQsgA0HIB2ogBkHIA/wKAAAgAyAINgKUCyADIAk2ApALIANBwAdqIAlB/gFqQf8BcUEDdGopAwAhDSALeSIMQgBSDQIMBQsgDiAOeYYhCwwFCyABKQMAIQ4gASgCCCIGQfb/fUgNAUIAIA5CC4hC/////////weDIAZB849+ShshCyAGQfSPfiAGQfSPfkgbQYuAAmqtQjSGDAILIAsgDIYgDUIAIAx9iIQhCyANIAyGIQ0MAgtCACAOQYGAfiAGa62IIAZBwv99SRshC0IACyENIANB6ANqQQBByAP8CwAgA0EBNgKwByADIAtCAYYiDCAMQoCAgICAgIAQhCALQoCAgICAgID4/wCDIA2EIgxQIgAbQgGENwPgAyADQeADaiAEIAprEB4CQEHNdyAMQjSIp0G0CGsgABsgBGoiACAKayIEQQBKBEAgA0HgA2ogBBAfDAELIARBAE4NACADQQhqIAogAGsQHwsgA0HAB2ogA0EIakHYA/wKAAAgA0GYC2ogA0HgA2pB2AP8CgAAQQAhBQJAIAMoApALIgQgAygC6A4iAEsNACAAIARNBEAgBEEDdCECIANBuAdqIQcgA0GQC2ohBANAIAJBCGsiAEF4RgRAQQIhBQwDCyACIAdqKQMAIg0gAiAEaikDACIMVg0CIAAhAiAMIA1YDQALC0EBIQULIAMgBToAvwcCQCABAn4CfgJAAkACQAJAIAZB9v99SARAQgAgDkGBgH4gBmutiCAGQcL/fUkbIQwgAy0AvwciAEEedEEedUEASA0CQgEhDSAAQQNxQQFrDQcMAQsgASAGQYuAAmoiAjYCCCAOQguIIQwgAy0AvwciAEEedEEedUEASA0DQgEgAEEDcUEBaw0EGgwCC0IAIQ0MBQsgDEIBgyENDAQLQgAMAQsgDEIBgwsgDHwiDEL/////////D1gEQCAMQv////////8HgwwBCyABIAZBjIACaiICNgIIQgALNwMAIAJB/g9NDQMgAUIANwMAIAFB/w82AggMAwsgASAMIA18Igw3AwAgASAMQv////////8HVjYCCAwCC0ECIQIgCUECIAlBAksbIQcgAEEDdCADakGIC2ohBCADQaALaiEAAkADQCACIAdGDQEgAyAONwOYCyAAIAZByAP8CgAAIAMgCDYC7A4gAyAJNgLoDiACQQFqIQIgBCkDACEMIARBCGshBCAMUA0ACyACQQFrIQcLIAcgCUkgDUIAUnIhAgsgASAJQQZ0IAkEfyADQZgLaiIAIANBCGpB0AP8CgAAIAMgCDYC7A4gAyAJNgLoDiAJQQFrQf8BcUEDdCAAaikDAHmnQT9xBUEAC2siAEH+B2oiBDYCCCABAn4gC0L/D4MiDEKACFYgDEKACFEgAnFyIAtC/x+DQoAYUXKtIAtCC4h8IgxC/////////w9YBEAgDEL/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qqoAQaDowAALCP////+qqqqqAEGx6MAACwEEAEHQ6MAACxCqqqqqAAAAAAAAAAD/////AEHA6cAACwSqqqqqAEHY6cAACwSqqqqqAEHw6cAACwj/////qqqqqgBBgerAAAsBBABBoOrAAAsQqqqqqgAAAAAAAAAA/////wBBkOvAAAsEqqqqqgBBqOvAAAsEqqqqqgBBwOvAAAsI/////6qqqqoAQdHrwAALAQQAQfDrwAALEKqqqqoAAAAAAAAAAP////8AQeDswAALBKqqqqoAQfjswAALBKqqqqoAQZDtwAALCP////+qqqqqAEGh7cAACwEEAEHA7cAACxCqqqqqAAAAAAAAAAD/////AEGw7sAACwSqqqqqAEHI7sAACwSqqqqqAEHg7sAACwj/////qqqqqgBB8e7AAAsBBABBkO/AAAsQqqqqqgAAAAAAAAAA/////wBBgPDAAAsEqqqqqgBBmPDAAAsEqqqqqgBBsPDAAAsI/////6qqqqoAQcHwwAALAQQAQeDwwAALEKqqqqoAAAAAAAAAAP////8AQdDxwAALBKqqqqoAQejxwAALBKqqqqoAQYDywAALCP////+qqqqqAEGR8sAACwEEAEGw8sAACxCqqqqqAAAAAAAAAAD/////AEGg88AACwSqqqqqAEG488AACwSqqqqqAEHQ88AACwj/////qqqqqgBB4fPAAAsBBABBgPTAAAsQqqqqqgAAAAAAAAAA/////wBB8PTAAAsEqqqqqgBBiPXAAAsEqqqqqgBBoPXAAAsI/////6qqqqoAQbH1wAALAQQAQdD1wAALEKqqqqoAAAAAAAAAAP////8AQcD2wAALBKqqqqoAQdj2wAALBKqqqqoAQfD2wAALCP////+qqqqqAEGB98AACwEEAEGg98AACxCqqqqqAAAAAAAAAAD/////AEGQ+MAACwSqqqqqAEGo+MAACwSqqqqqAEHA+MAACwj/////qqqqqgBB0fjAAAsBBABB8PjAAAsQqqqqqgAAAAAAAAAA/////wBB4PnAAAsEqqqqqgBB+PnAAAsEqqqqqgBBkPrAAAsI/////6qqqqoAQaH6wAALAQQAQcD6wAALEKqqqqoAAAAAAAAAAP////8AQbD7wAALBKqqqqoAQcj7wAALBKqqqqoAQeD7wAALCP////+qqqqqAEHx+8AACwEEAEGQ/MAACxCqqqqqAAAAAAAAAAD/////AEGA/cAACwSqqqqqAEGY/cAACwSqqqqqAEGw/cAACwj/////qqqqqgBBwf3AAAsBBABB4P3AAAsQqqqqqgAAAAAAAAAA/////wBB0P7AAAsEqqqqqgBB6P7AAAsEqqqqqgBBgP/AAAsI/////6qqqqoAQZH/wAALAQQAQbD/wAALEKqqqqoAAAAAAAAAAP////8AQaCAwQALBKqqqqoAQbiAwQALBKqqqqoAQdCAwQALCP////+qqqqqAEHhgMEACwEEAEGAgcEACxCqqqqqAAAAAAAAAAD/////AEHwgcEACwSqqqqqAEGIgsEACwSqqqqqAEGggsEACwj/////qqqqqgBBsYLBAAsBBABB0ILBAAsQqqqqqgAAAAAAAAAA/////wBBwIPBAAsEqqqqqgBB2IPBAAsEqqqqqgBB8IPBAAsI/////6qqqqoAQYGEwQALAQQAQaCEwQALEKqqqqoAAAAAAAAAAP////8AQZCFwQALBKqqqqoAQaiFwQALBKqqqqoAQcCFwQALCP////+qqqqqAEHRhcEACwEEAEHwhcEACxCqqqqqAAAAAAAAAAD/////AEHghsEACwSqqqqqAEH4hsEACwSqqqqqAEGQh8EACwj/////qqqqqgBBoYfBAAsBBABBwIfBAAsQqqqqqgAAAAAAAAAA/////wBBsIjBAAsEqqqqqgBByIjBAAsEqqqqqgBB4IjBAAsI/////6qqqqoAQfGIwQALAQQAQZCJwQALEKqqqqoAAAAAAAAAAP////8AQYCKwQALBKqqqqoAQZiKwQALBKqqqqoAQbCKwQALCP////+qqqqqAEHBisEACwEEAEHgisEACxCqqqqqAAAAAAAAAAD/////AEHQi8EACwSqqqqqAEHoi8EACwSqqqqqAEGAjMEACwj/////qqqqqgBBkYzBAAsBBABBsIzBAAsQqqqqqgAAAAAAAAAA/////wBBoI3BAAsEqqqqqgBBuI3BAAsEqqqqqgBB0I3BAAsI/////6qqqqoAQeGNwQALAQQAQYCOwQALEKqqqqoAAAAAAAAAAP////8AQfCOwQALBKqqqqoAQYiPwQALBKqqqqoAQaCPwQALCP////+qqqqqAEGxj8EACwEEAEHQj8EACxCqqqqqAAAAAAAAAAD/////AEHAkMEACwSqqqqqAEHYkMEACwSqqqqqAEHwkMEACwj/////qqqqqgBBgZHBAAsBBABBoJHBAAsQqqqqqgAAAAAAAAAA/////wBBkJLBAAsEqqqqqgBBqJLBAAsEqqqqqgBBwJLBAAsI/////6qqqqoAQdGSwQALAQQAQfCSwQALEKqqqqoAAAAAAAAAAP////8AQeCTwQALBKqqqqoAQfiTwQALBKqqqqoAQZCUwQALCP////+qqqqqAEGhlMEACwEEAEHAlMEACxCqqqqqAAAAAAAAAAD/////AEGwlcEACwSqqqqqAEHIlcEACwSqqqqqAEHglcEACwj/////qqqqqgBB8ZXBAAsBBABBkJbBAAsQqqqqqgAAAAAAAAAA/////wBBgJfBAAsEqqqqqgBBmJfBAAsEqqqqqgBBsJfBAAsI/////6qqqqoAQcGXwQALAQQAQeCXwQALEKqqqqoAAAAAAAAAAP////8AQdCYwQALBKqqqqoAQeiYwQALBKqqqqoAQYCZwQALCP////+qqqqqAEGRmcEACwEEAEGwmcEACxCqqqqqAAAAAAAAAAD/////AEGgmsEACwSqqqqqAEG4msEACwSqqqqqAEHQmsEACwj/////qqqqqgBB4ZrBAAsBBABBgJvBAAsQqqqqqgAAAAAAAAAA/////wBB8JvBAAsEqqqqqgBBiJzBAAsEqqqqqgBBoJzBAAsI/////6qqqqoAQbGcwQALAQQAQdCcwQALEKqqqqoAAAAAAAAAAP////8AQcCdwQALBKqqqqoAQdidwQALBKqqqqoAQfCdwQALCP////+qqqqqAEGBnsEACwEEAEGgnsEACxCqqqqqAAAAAAAAAAD/////AEGQn8EACwSqqqqqAEGon8EACwSqqqqqAEHAn8EACwj/////qqqqqgBB0Z/BAAsBBABB8J/BAAsQqqqqqgAAAAAAAAAA/////wBB4KDBAAsEqqqqqgBB+KDBAAsEqqqqqgBBkKHBAAsI/////6qqqqoAQaGhwQALAQQAQcChwQALEKqqqqoAAAAAAAAAAP////8AQbCiwQALBKqqqqoAQciiwQALBKqqqqoAQeCiwQALCP////+qqqqqAEHxosEACwEEAEGQo8EACxCqqqqqAAAAAAAAAAD/////AEGApMEACwSqqqqqAEGYpMEACwSqqqqqAEGwpMEACwj/////qqqqqgBBwaTBAAsBBABB4KTBAAsQqqqqqgAAAAAAAAAA/////wBB0KXBAAsEqqqqqgBB6KXBAAsEqqqqqgBBgKbBAAsI/////6qqqqoAQZGmwQALAQQAQbCmwQALEKqqqqoAAAAAAAAAAP////8AQaCnwQALBKqqqqoAQbinwQALBKqqqqoAQdCnwQALCP////+qqqqqAEHhp8EACwEEAEGAqMEACxCqqqqqAAAAAAAAAAD/////AEHwqMEACwSqqqqqAEGIqcEACwSqqqqqAEGgqcEACwj/////qqqqqgBBsanBAAsBBABB0KnBAAsQqqqqqgAAAAAAAAAA/////wBBwKrBAAsEqqqqqgBB2KrBAAsEqqqqqgBB8KrBAAsI/////6qqqqoAQYGrwQALAQQAQaCrwQALEKqqqqoAAAAAAAAAAP////8AQZCswQALBKqqqqoAQaiswQALBKqqqqoAQcCswQALCP////+qqqqqAEHRrMEACwEEAEHwrMEACxCqqqqqAAAAAAAAAAD/////AEHgrcEACwSqqqqqAEH4rcEACwSqqqqqAEGQrsEACwj/////qqqqqgBBoa7BAAsBBABBwK7BAAsQqqqqqgAAAAAAAAAA/////wBBsK/BAAsEqqqqqgBByK/BAAsEqqqqqgBB4K/BAAsI/////6qqqqoAQfGvwQALAQQAQZCwwQALEKqqqqoAAAAAAAAAAP////8AQYCxwQALBKqqqqoAQZixwQALBKqqqqoAQbCxwQALCP////+qqqqqAEHBscEACwEEAEHgscEACxCqqqqqAAAAAAAAAAD/////AEHQssEACwSqqqqqAEHossEACwSqqqqqAEGAs8EACwj/////qqqqqgBBkbPBAAsBBABBsLPBAAsQqqqqqgAAAAAAAAAA/////wBBoLTBAAsEqqqqqgBBuLTBAAsEqqqqqgBB0LTBAAsI/////6qqqqoAQeG0wQALAQQAQYC1wQALEKqqqqoAAAAAAAAAAP////8AQfC1wQALBKqqqqoAQYi2wQALBKqqqqoAQaC2wQALCP////+qqqqqAEGxtsEACwEEAEHQtsEACxCqqqqqAAAAAAAAAAD/////AEHAt8EACwSqqqqqAEHYt8EACwSqqqqqAEHwt8EACwj/////qqqqqgBBgbjBAAsBBABBoLjBAAsQqqqqqgAAAAAAAAAA/////wBBkLnBAAsEqqqqqgBBqLnBAAsEqqqqqgBBwLnBAAsI/////6qqqqoAQdG5wQALAQQAQfC5wQALEKqqqqoAAAAAAAAAAP////8AQeC6wQALBKqqqqoAQfi6wQALBKqqqqoAQZC7wQALCP////+qqqqqAEGhu8EACwEEAEHAu8EACxCqqqqqAAAAAAAAAAD/////AEGwvMEACwSqqqqqAEHIvMEACwSqqqqqAEHgvMEACwj/////qqqqqgBB8bzBAAsBBABBkL3BAAsQqqqqqgAAAAAAAAAA/////wBBgL7BAAsEqqqqqgBBmL7BAAsEqqqqqgBBsL7BAAsI/////6qqqqoAQcG+wQALAQQAQeC+wQALEKqqqqoAAAAAAAAAAP////8AQdC/wQALBKqqqqoAQei/wQALBKqqqqoAQYDAwQALCP////+qqqqqAEGRwMEACwEEAEGwwMEACxCqqqqqAAAAAAAAAAD/////AEGgwcEACwSqqqqqAEG4wcEACwSqqqqqAEHQwcEACwj/////qqqqqgBB4cHBAAsBBABBgMLBAAsQqqqqqgAAAAAAAAAA/////wBB8MLBAAsEqqqqqgBBiMPBAAsEqqqqqgBBoMPBAAsI/////6qqqqoAQbHDwQALAQQAQdDDwQALEKqqqqoAAAAAAAAAAP////8AQcDEwQALBKqqqqoAQdjEwQALBKqqqqoAQfDEwQALCP////+qqqqqAEGBxcEACwEEAEGgxcEACxCqqqqqAAAAAAAAAAD/////AEGQxsEACwSqqqqqAEGoxsEACwSqqqqqAEHAxsEACwj/////qqqqqgBB0cbBAAsBBABB8MbBAAsQqqqqqgAAAAAAAAAA/////wBB4MfBAAsEqqqqqgBB+MfBAAsEqqqqqgBBkMjBAAsI/////6qqqqoAQaHIwQALAQQAQcDIwQALEKqqqqoAAAAAAAAAAP////8AQbDJwQALBKqqqqoAQcjJwQALBKqqqqoAQeDJwQALCP////+qqqqqAEHxycEACwEEAEGQysEACxCqqqqqAAAAAAAAAAD/////AEGAy8EACwSqqqqqAEGYy8EACwSqqqqqAEGwy8EACwj/////qqqqqgBBwcvBAAsBBABB4MvBAAsQqqqqqgAAAAAAAAAA/////wBB0MzBAAsEqqqqqgBB6MzBAAsEqqqqqgBBgM3BAAsI/////6qqqqoAQZHNwQALAQQAQbDNwQALEKqqqqoAAAAAAAAAAP////8AQaDOwQALBKqqqqoAQbjOwQALBKqqqqoAQdDOwQALCP////+qqqqqAEHhzsEACwEEAEGAz8EACxCqqqqqAAAAAAAAAAD/////AEHwz8EACwSqqqqqAEGI0MEACwSqqqqqAEGg0MEACwj/////qqqqqgBBsdDBAAsBBABB0NDBAAsQqqqqqgAAAAAAAAAA/////wBBwNHBAAsEqqqqqgBB2NHBAAsEqqqqqgBB8NHBAAsI/////6qqqqoAQYHSwQALAQQAQaDSwQALEKqqqqoAAAAAAAAAAP////8AQZDTwQALBKqqqqoAQajTwQALBKqqqqoAQcDTwQALCP////+qqqqqAEHR08EACwEEAEHw08EACxCqqqqqAAAAAAAAAAD/////AEHg1MEACwSqqqqqAEH41MEACwSqqqqqAEGQ1cEACwj/////qqqqqgBBodXBAAsBBABBwNXBAAsQqqqqqgAAAAAAAAAA/////wBBsNbBAAsEqqqqqgBByNbBAAsEqqqqqgBB4NbBAAsI/////6qqqqoAQfHWwQALAQQAQZDXwQALEKqqqqoAAAAAAAAAAP////8AQYDYwQALBKqqqqoAQZjYwQALBKqqqqoAQbDYwQALCP////+qqqqqAEHB2MEACwEEAEHg2MEACxCqqqqqAAAAAAAAAAD/////AEHQ2cEACwSqqqqqAEHo2cEACwSqqqqqAEGA2sEACwj/////qqqqqgBBkdrBAAsBBABBsNrBAAsQqqqqqgAAAAAAAAAA/////wBBoNvBAAsEqqqqqgBBuNvBAAsEqqqqqgBB0NvBAAsI/////6qqqqoAQeHbwQALAQQAQYDcwQALEKqqqqoAAAAAAAAAAP////8AQfDcwQALBKqqqqoAQYjdwQALBKqqqqoAQaDdwQALCP////+qqqqqAEGx3cEACwEEAEHQ3cEACxCqqqqqAAAAAAAAAAD/////AEHA3sEACwSqqqqqAEHY3sEACwSqqqqqAEHw3sEACwj/////qqqqqgBBgd/BAAsBBABBoN/BAAsQqqqqqgAAAAAAAAAA/////wBBkODBAAsEqqqqqgBBqODBAAsEqqqqqgBBwODBAAsI/////6qqqqoAQdHgwQALAQQAQfDgwQALEKqqqqoAAAAAAAAAAP////8AQeDhwQALBKqqqqoAQfjhwQALBKqqqqoAQZDiwQALCP////+qqqqqAEGh4sEACwEEAEHA4sEACxCqqqqqAAAAAAAAAAD/////AEGw48EACwSqqqqqAEHI48EACwSqqqqqAEHg48EACwj/////qqqqqgBB8ePBAAsBBABBkOTBAAsQqqqqqgAAAAAAAAAA/////wBBgOXBAAsEqqqqqgBBmOXBAAsEqqqqqgBBsOXBAAsI/////6qqqqoAQcHlwQALAQQAQeDlwQALEKqqqqoAAAAAAAAAAP////8AQdDmwQALBKqqqqoAQejmwQALBKqqqqoAQYDnwQALCP////+qqqqqAEGR58EACwEEAEGw58EACxCqqqqqAAAAAAAAAAD/////AEGg6MEACwSqqqqqAEG46MEACwSqqqqqAEHQ6MEACwj/////qqqqqgBB4ejBAAsBBABBgOnBAAsQqqqqqgAAAAAAAAAA/////wBB8OnBAAsEqqqqqgBBiOrBAAsEqqqqqgBBoOrBAAsI/////6qqqqoAQbHqwQALAQQAQdDqwQALEKqqqqoAAAAAAAAAAP////8AQcDrwQALBKqqqqoAQdjrwQALBKqqqqoAQfDrwQALCP////+qqqqqAEGB7MEACwEEAEGg7MEACxCqqqqqAAAAAAAAAAD/////AEGQ7cEACwSqqqqqAEGo7cEACwSqqqqqAEHA7cEACwj/////qqqqqgBB0e3BAAsBBABB8O3BAAsQqqqqqgAAAAAAAAAA/////wBB4O7BAAsEqqqqqgBB+O7BAAsEqqqqqgBBkO/BAAsI/////6qqqqoAQaHvwQALAQQAQcDvwQALEKqqqqoAAAAAAAAAAP////8AQbDwwQALBKqqqqoAQcjwwQALBKqqqqoAQeDwwQALCP////+qqqqqAEHx8MEACwEEAEGQ8cEACxCqqqqqAAAAAAAAAAD/////AEGA8sEACwSqqqqqAEGY8sEACwSqqqqqAEGw8sEACwj/////qqqqqgBBwfLBAAsBBABB4PLBAAsQqqqqqgAAAAAAAAAA/////wBB0PPBAAsEqqqqqgBB6PPBAAsEqqqqqgBBgPTBAAsI/////6qqqqoAQZH0wQALAQQAQbD0wQALEKqqqqoAAAAAAAAAAP////8AQaD1wQALBKqqqqoAQbj1wQALBKqqqqoAQdD1wQALCP////+qqqqqAEHh9cEACwEEAEGA9sEACxCqqqqqAAAAAAAAAAD/////AEHw9sEACwSqqqqqAEGI98EACwSqqqqqAEGg98EACwj/////qqqqqgBBsffBAAsBBABB0PfBAAsQqqqqqgAAAAAAAAAA/////wBBwPjBAAsEqqqqqgBB2PjBAAsEqqqqqgBB8PjBAAsI/////6qqqqoAQYH5wQALAQQAQaD5wQALEKqqqqoAAAAAAAAAAP////8AQZD6wQALBKqqqqoAQaj6wQALBKqqqqoAQcD6wQALCP////+qqqqqAEHR+sEACwEEAEHw+sEACxCqqqqqAAAAAAAAAAD/////AEHg+8EACwSqqqqqAEH4+8EACwSqqqqqAEGQ/MEACwj/////qqqqqgBBofzBAAsBBABBwPzBAAsQqqqqqgAAAAAAAAAA/////wBBsP3BAAsEqqqqqgBByP3BAAsEqqqqqgBB4P3BAAsI/////6qqqqoAQfH9wQALAQQAQZD+wQALEKqqqqoAAAAAAAAAAP////8AQYD/wQALBKqqqqoAQZj/wQALBKqqqqoAQbD/wQALCP////+qqqqqAEHB/8EACwEEAEHg/8EACxCqqqqqAAAAAAAAAAD/////AEHQgMIACwSqqqqqAEHogMIACwSqqqqqAEGAgcIACwj/////qqqqqgBBkYHCAAsBBABBsIHCAAsQqqqqqgAAAAAAAAAA/////wBBoILCAAsEqqqqqgBBuILCAAsEqqqqqgBB0ILCAAsI/////6qqqqoAQeGCwgALAQQAQYCDwgALEKqqqqoAAAAAAAAAAP////8AQfCDwgALBKqqqqoAQYiEwgALBKqqqqoAQaCEwgALCP////+qqqqqAEGxhMIACwEEAEHQhMIACxCqqqqqAAAAAAAAAAD/////AEHAhcIACwSqqqqqAEHYhcIACwSqqqqqAEHwhcIACwj/////qqqqqgBBgYbCAAsBBABBoIbCAAsQqqqqqgAAAAAAAAAA/////wBBkIfCAAsEqqqqqgBBqIfCAAsEqqqqqgBBwIfCAAsI/////6qqqqoAQdGHwgALAQQAQfCHwgALEKqqqqoAAAAAAAAAAP////8AQeCIwgALBKqqqqoAQfiIwgALBKqqqqoAQZCJwgALCP////+qqqqqAEGhicIACwEEAEHAicIACxCqqqqqAAAAAAAAAAD/////AEGwisIACwSqqqqqAEHIisIACwSqqqqqAEHgisIACwj/////qqqqqgBB8YrCAAsBBABBkIvCAAsQqqqqqgAAAAAAAAAA/////wBBgIzCAAsEqqqqqgBBmIzCAAsEqqqqqgBBsIzCAAsI/////6qqqqoAQcGMwgALAQQAQeCMwgALEKqqqqoAAAAAAAAAAP////8AQdCNwgALBKqqqqoAQeiNwgALBKqqqqoAQYCOwgALCP////+qqqqqAEGRjsIACwEEAEGwjsIACxCqqqqqAAAAAAAAAAD/////AEGgj8IACwSqqqqqAEG4j8IACwSqqqqqAEHQj8IACwj/////qqqqqgBB4Y/CAAsBBABBgJDCAAsQqqqqqgAAAAAAAAAA/////wBB8JDCAAsEqqqqqgBBiJHCAAsEqqqqqgBBoJHCAAsI/////6qqqqoAQbGRwgALAQQAQdCRwgALEKqqqqoAAAAAAAAAAP////8AQcCSwgALBKqqqqoAQdiSwgALBKqqqqoAQfCSwgALCP////+qqqqqAEGBk8IACwEEAEGgk8IACxCqqqqqAAAAAAAAAAD/////AEGQlMIACwSqqqqqAEGolMIACwSqqqqqAEHAlMIACwj/////qqqqqgBB0ZTCAAsBBABB8JTCAAsQqqqqqgAAAAAAAAAA/////wBB4JXCAAsEqqqqqgBB+JXCAAsEqqqqqgBBkJbCAAsI/////6qqqqoAQaGWwgALAQQAQcCWwgALEKqqqqoAAAAAAAAAAP////8AQbCXwgALBKqqqqoAQciXwgALBKqqqqoAQeCXwgALCP////+qqqqqAEHxl8IACwEEAEGQmMIACxCqqqqqAAAAAAAAAAD/////AEGAmcIACwSqqqqqAEGYmcIACwSqqqqqAEGwmcIACwj/////qqqqqgBBwZnCAAsBBABB4JnCAAsQqqqqqgAAAAAAAAAA/////wBB0JrCAAsEqqqqqgBB6JrCAAsEqqqqqgBBgJvCAAsI/////6qqqqoAQZGbwgALAQQAQbCbwgALEKqqqqoAAAAAAAAAAP////8AQaCcwgALBKqqqqoAQbicwgALBKqqqqoAQdCcwgALCP////+qqqqqAEHhnMIACwEEAEGAncIACxCqqqqqAAAAAAAAAAD/////AEHwncIACwSqqqqqAEGInsIACwSqqqqqAEGgnsIACwj/////qqqqqgBBsZ7CAAsBBABB0J7CAAsQqqqqqgAAAAAAAAAA/////wBBwJ/CAAsEqqqqqgBB2J/CAAsEqqqqqgBB8J/CAAsI/////6qqqqoAQYGgwgALAQQAQaCgwgALEKqqqqoAAAAAAAAAAP////8AQZChwgALBKqqqqoAQaihwgALBKqqqqoAQcChwgALCP////+qqqqqAEHRocIACwEEAEHwocIACxCqqqqqAAAAAAAAAAD/////AEHgosIACwSqqqqqAEH4osIACwSqqqqqAEGQo8IACwj/////qqqqqgBBoaPCAAsBBABBwKPCAAsQqqqqqgAAAAAAAAAA/////wBBsKTCAAsEqqqqqgBByKTCAAsEqqqqqgBB4KTCAAsI/////6qqqqoAQfGkwgALAQQAQZClwgALEKqqqqoAAAAAAAAAAP////8AQYCmwgALBKqqqqoAQZimwgALBKqqqqoAQbCmwgALCP////+qqqqqAEHBpsIACwEEAEHgpsIACxCqqqqqAAAAAAAAAAD/////AEHQp8IACwSqqqqqAEHop8IACwSqqqqqAEGAqMIACwj/////qqqqqgBBkajCAAsBBABBsKjCAAsQqqqqqgAAAAAAAAAA/////wBBoKnCAAsEqqqqqgBBuKnCAAsEqqqqqgBB0KnCAAsI/////6qqqqoAQeGpwgALAQQAQYCqwgALEKqqqqoAAAAAAAAAAP////8AQfCqwgALBKqqqqoAQYirwgALBKqqqqoAQaCrwgALCP////+qqqqqAEGxq8IACwEEAEHQq8IACxCqqqqqAAAAAAAAAAD/////AEHArMIACwSqqqqqAEHYrMIACwSqqqqqAEHwrMIACwj/////qqqqqgBBga3CAAsBBABBoK3CAAsQqqqqqgAAAAAAAAAA/////wBBkK7CAAsEqqqqqgBBqK7CAAsEqqqqqgBBwK7CAAsI/////6qqqqoAQdGuwgALAQQAQfCuwgALEKqqqqoAAAAAAAAAAP////8=\";\n",
|
|
6
|
+
"/**\n * VectorJSON — SIMD-accelerated JSON parser\n *\n * Architecture:\n * JS bytes → [Zig + zimdjson SIMD] → tape → lazy Proxy over doc slots\n *\n * The Zig engine (engine.wasm) parses JSON bytes into an internal tape format\n * using SIMD-accelerated algorithms from zimdjson.\n *\n * Primary parse path: doc-slot (tape-direct navigation via Zig exports).\n * FinalizationRegistry auto-frees doc slots when the Proxy is GC'd.\n * Users CAN call .free() to release immediately if desired.\n */\n\nimport { wasmBase64 } from \"./engine-wasm.generated.js\";\n\nfunction decodeBase64(b64: string): Uint8Array {\n if (typeof Buffer !== \"undefined\")\n return new Uint8Array(Buffer.from(b64, \"base64\").buffer);\n const bin = atob(b64);\n const bytes = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i);\n return bytes;\n}\n\n// --- Types ---\n\nexport type ParseStatus = \"complete\" | \"complete_early\" | \"incomplete\" | \"invalid\";\nexport type FeedStatus = \"incomplete\" | \"complete\" | \"error\" | \"end_early\";\n\n/** Result shape compatible with Vercel AI SDK's parsePartialJson */\nexport type PartialJsonState =\n | \"successful-parse\"\n | \"repaired-parse\"\n | \"failed-parse\";\n\n/** Discriminated union — narrows `value` type when you check `state`. */\nexport type PartialJsonResult<T = unknown> =\n | { value: T; state: \"successful-parse\" }\n | { value: T | undefined; state: \"repaired-parse\" }\n | { value: undefined; state: \"failed-parse\" };\n\n/** Recursively make all properties optional — matches Vercel AI SDK's DeepPartial. */\nexport type DeepPartial<T> =\n T extends object\n ? T extends Array<infer U>\n ? Array<DeepPartial<U>>\n : { [K in keyof T]?: DeepPartial<T[K]> }\n : T;\n\nexport interface StreamingParser<T = unknown> {\n /** Feed a chunk of bytes to the parser. Only NEW bytes are scanned (O(chunk_size)). */\n feed(chunk: Uint8Array | string): FeedStatus;\n /** Get the parsed value. Returns autocompleted partial value while incomplete, final value when complete; throws on parse errors. */\n getValue(): T | undefined;\n /** Get remaining bytes after end_early status (for NDJSON). */\n getRemaining(): Uint8Array | null;\n /** Get the current status without feeding data. */\n getStatus(): FeedStatus;\n /** Copy the accumulated stream buffer into a new ArrayBuffer (for Worker postMessage transfer). */\n getRawBuffer(): ArrayBuffer | null;\n /** Destroy the parser and free all resources. */\n destroy(): void;\n /** Async iteration over partial values when a source was provided. */\n [Symbol.asyncIterator](): AsyncIterableIterator<T | undefined>;\n}\n\n/** Zod-like schema type for createParser options. */\nexport type ZodLike<T> = { safeParse: (v: unknown) => { success: boolean; data?: T } };\n\n/** Options for createParser when using an options object. */\nexport interface CreateParserOptions<T = unknown> {\n /** Only include these top-level or nested fields (dot-separated paths). */\n pick?: string[];\n /** Schema for validation on complete values. */\n schema?: ZodLike<T>;\n /** Stream source — makes the parser async-iterable via for-await. */\n source?: ReadableStream<Uint8Array> | AsyncIterable<Uint8Array | string>;\n}\n\nexport interface ParseResult {\n status: ParseStatus;\n value?: unknown;\n remaining?: Uint8Array;\n error?: string;\n /** Check if a value (object/array) from an incomplete parse is fully present in the original input. */\n isComplete(value: unknown): boolean;\n /** Full materialization via JSON.parse — fastest way to get a plain JS object tree. */\n toJSON(): unknown;\n}\n\n// --- EventParser Types ---\n\n/** Compiled path segment: string = key, number = index, '*' = wildcard */\nexport type PathSegment = string | number;\n\nexport interface PathEvent {\n type: 'value';\n path: string;\n value: unknown;\n offset: number;\n length: number;\n index?: number;\n key?: string;\n matches: (string | number)[];\n}\n\nexport interface DeltaEvent {\n type: 'delta';\n path: string;\n value: string;\n offset: number;\n length: number;\n}\n\nexport interface RootEvent {\n type: 'root';\n index: number;\n value: unknown;\n}\n\nexport interface EventParser {\n on(path: string, callback: (event: PathEvent) => void): EventParser;\n on<T>(path: string, schema: { safeParse: (v: unknown) => { success: boolean; data?: T } }, callback: (event: PathEvent & { value: T }) => void): EventParser;\n onDelta(path: string, callback: (event: DeltaEvent) => void): EventParser;\n onText(callback: (text: string) => void): EventParser;\n skip(...paths: string[]): EventParser;\n off(path: string, callback?: Function): EventParser;\n feed(chunk: string | Uint8Array): FeedStatus;\n getValue(): unknown | undefined;\n getRemaining(): Uint8Array | null;\n getStatus(): FeedStatus;\n /** Copy the accumulated stream buffer into a new ArrayBuffer (for Worker postMessage transfer). */\n getRawBuffer(): ArrayBuffer | null;\n destroy(): void;\n}\n\nexport interface VectorJSON {\n /**\n * Parse a JSON string or Uint8Array into a value.\n * Primitives (null, boolean, number) are returned directly as JS values.\n * Objects and arrays return Proxy objects — values materialize only when accessed.\n * Call .free() on the result to release resources immediately, or let\n * FinalizationRegistry handle it automatically when the Proxy is GC'd.\n */\n parse(input: string | Uint8Array): ParseResult;\n /**\n * Create a streaming parser for incremental JSON parsing.\n * Feed chunks as they arrive; only new bytes are processed per call.\n * Total work is O(N) regardless of how many chunks — no re-parsing.\n *\n * ```ts\n * const parser = vj.createParser();\n * for await (const chunk of stream) {\n * const status = parser.feed(chunk);\n * if (status === \"complete\" || status === \"end_early\") {\n * const value = parser.getValue();\n * // use value...\n * parser.destroy();\n * break;\n * }\n * }\n * ```\n */\n createParser(): StreamingParser;\n /**\n * Create a streaming parser with schema validation.\n * `getValue()` returns `undefined` when the schema rejects the value (same as incomplete).\n * T is auto-inferred from the schema — no manual `<T>` needed.\n *\n * ```ts\n * const parser = vj.createParser(z.object({ name: z.string() }));\n * parser.feed('{\"name\":\"Alice\"}');\n * parser.getValue(); // { name: string } | undefined\n * ```\n */\n createParser<T>(schema: ZodLike<T>): StreamingParser<T>;\n /**\n * Create a streaming parser with options: field picking, schema, and/or stream source.\n *\n * ```ts\n * // Pick specific fields + async iteration:\n * const parser = vj.createParser({\n * pick: [\"name\", \"age\"],\n * source: response.body,\n * });\n * for await (const partial of parser) {\n * console.log(partial); // only picked fields\n * }\n * ```\n */\n createParser<T = unknown>(options: CreateParserOptions<T>): StreamingParser<T>;\n /**\n * Deep-compare two values for structural equality.\n * When both values are VJ proxies, comparison happens entirely in WASM\n * (walks tapes in linear memory — zero JS allocations, zero Proxy traps).\n * Falls back to JSON.stringify comparison for plain JS objects.\n *\n * By default, object key order does not matter (`{\"a\":1,\"b\":2}` equals `{\"b\":2,\"a\":1}`).\n * Pass `{ ordered: true }` for faster key-order-sensitive comparison.\n */\n deepCompare(a: unknown, b: unknown, options?: { ignoreKeyOrder?: boolean }): boolean;\n /**\n * Eagerly materialize a lazy proxy into plain JS objects.\n * If the value is already a plain JS value, returns it as-is.\n */\n materialize(value: unknown): unknown;\n /**\n * Drop-in replacement for AI SDK partial JSON parsers.\n * Parses a potentially incomplete JSON string and returns a plain JS object.\n *\n * Compatible with Vercel AI SDK's `parsePartialJson` — returns `{ value, state }`\n * where state is \"successful-parse\", \"repaired-parse\", or \"failed-parse\".\n *\n * ```ts\n * // Drop-in for Vercel AI SDK:\n * const { value, state } = vj.parsePartialJson('{\"a\": 1, \"b\": ');\n * // value = { a: 1, b: null }, state = \"repaired-parse\"\n * ```\n */\n parsePartialJson(input: string): PartialJsonResult;\n /**\n * Parse partial JSON with schema-inferred types.\n * T is auto-inferred from the schema — no manual `<T>` needed.\n *\n * Returns `DeepPartial<T>` because incomplete JSON will have missing fields.\n * When `safeParse` succeeds, returns the validated `data`.\n * When `safeParse` fails on a repaired-parse, returns the raw parsed value\n * (typed as `DeepPartial<T>`) — the object is partial, that's expected.\n *\n * ```ts\n * const User = z.object({ name: z.string(), age: z.number() });\n * const { value, state } = vj.parsePartialJson('{\"name\":\"Al', User);\n * // value: { name?: string; age?: number } | undefined\n * // state: \"repaired-parse\"\n * ```\n */\n parsePartialJson<T>(input: string, schema: { safeParse: (v: unknown) => { success: boolean; data?: T } }): PartialJsonResult<DeepPartial<T>>;\n /**\n * Create an event-driven streaming parser with path subscriptions,\n * string delta emission, multi-root support, and JSON boundary detection.\n */\n createEventParser(options?: {\n multiRoot?: boolean;\n onRoot?: (event: RootEvent) => void;\n }): EventParser;\n}\n\n// --- Error codes from Zig engine ---\nconst ERROR_MESSAGES: Record<number, string> = {\n 1: \"Exceeded maximum nesting depth\",\n 2: \"Document exceeds maximum capacity\",\n 3: \"Invalid escape sequence\",\n 4: \"Invalid Unicode code point\",\n 5: \"Invalid number literal\",\n 6: \"Expected colon after key\",\n 7: \"Expected string key in object\",\n 8: \"Expected comma or closing bracket in array\",\n 9: \"Expected comma or closing brace in object\",\n 10: \"Incomplete array\",\n 11: \"Incomplete object\",\n 12: \"Unexpected trailing content\",\n 13: \"Out of memory\",\n 99: \"Unknown parse error\",\n};\n\n// --- Module types ---\n\ninterface EngineExports {\n memory: WebAssembly.Memory;\n alloc(size: number): number;\n dealloc(ptr: number, size: number): void;\n get_error_code(): number;\n doc_parse(ptr: number, len: number): number;\n doc_free(docId: number): void;\n doc_get_tag(docId: number, index: number): number;\n doc_get_number(docId: number, index: number): number;\n doc_read_string_raw(docId: number, index: number): number;\n doc_get_count(docId: number, index: number): number;\n doc_get_src_pos(docId: number, index: number): number;\n doc_get_close_index(docId: number, index: number): number;\n doc_find_field(docId: number, objIndex: number, keyPtr: number, keyLen: number): number;\n doc_get_input_ptr(docId: number): number;\n doc_batch_ptr(): number;\n doc_array_elements(docId: number, arrIndex: number, resumeAt: number): number;\n doc_object_keys(docId: number, objIndex: number, resumeAt: number): number;\n doc_deep_equal(doc_a: number, idx_a: number, doc_b: number, idx_b: number, ordered: number): number;\n stream_create(): number;\n stream_destroy(id: number): void;\n stream_feed(id: number, ptr: number, len: number): number;\n stream_get_status(id: number): number;\n stream_get_buffer_ptr(id: number): number;\n stream_get_value_len(id: number): number;\n stream_get_remaining_ptr(id: number): number;\n stream_get_remaining_len(id: number): number;\n stream_get_buffer_len(id: number): number;\n stream_get_buffer_cap(id: number): number;\n stream_reset_for_next(id: number): number;\n classify_input(ptr: number, len: number): number;\n autocomplete_input(ptr: number, len: number, buf_cap: number): number;\n get_value_end(): number;\n}\n\nconst utf8Decoder = new TextDecoder('utf-8');\n\n// Pre-computed byte→char table — avoids String.fromCharCode() calls in hot loops\nconst B2C: string[] = Array.from({ length: 256 }, (_, i) => String.fromCharCode(i));\n\nlet _instance: VectorJSON | null = null;\n\n/**\n * Initialize VectorJSON by loading and linking the WASM module.\n * Call this once; subsequent calls return the cached instance.\n */\nexport async function init(options?: {\n engineWasm?: string | URL | BufferSource;\n}): Promise<VectorJSON> {\n if (_instance) return _instance;\n\n // Load WASM bytes — embedded base64 by default, filesystem/URL/buffer when explicit\n let engineBytes: BufferSource;\n const wasmOpt = options?.engineWasm;\n if (wasmOpt instanceof ArrayBuffer || ArrayBuffer.isView(wasmOpt)) {\n engineBytes = wasmOpt as BufferSource;\n } else if (typeof wasmOpt === \"string\" || wasmOpt instanceof URL) {\n // Dynamic import for filesystem — only when user explicitly passes a path\n const { readFile } = await import(\"node:fs/promises\");\n const { fileURLToPath } = await import(\"node:url\");\n const path = typeof wasmOpt === \"string\" ? wasmOpt : fileURLToPath(wasmOpt);\n engineBytes = await readFile(path);\n } else {\n engineBytes = decodeBase64(wasmBase64).buffer as ArrayBuffer;\n }\n\n // --- Instantiate Zig engine ---\n const { instance: engineInstance } = await WebAssembly.instantiate(engineBytes as ArrayBuffer, {});\n const engine = engineInstance.exports as unknown as EngineExports;\n\n const encoder = new TextEncoder();\n\n // --- Reusable WASM buffers — grow-only, shared allocator pattern ---\n const inputBuf = { ptr: 0, cap: 0 };\n const keyBuf = { ptr: 0, cap: 0 };\n const feedBuf = { ptr: 0, cap: 0 };\n\n function ensureBuf(buf: typeof inputBuf, needed: number, minCap: number): number {\n if (needed <= buf.cap) return buf.ptr;\n if (buf.ptr !== 0) engine.dealloc(buf.ptr, buf.cap);\n let cap = buf.cap === 0 ? minCap : buf.cap;\n while (cap < needed) cap *= 2;\n buf.ptr = engine.alloc(cap) >>> 0;\n if (buf.ptr === 0) throw new Error(\"VectorJSON: allocation failed\");\n buf.cap = cap;\n return buf.ptr;\n }\n\n /** Encode string or copy Uint8Array into a reusable WASM buffer. Returns { ptr, len }. */\n function writeToWasm(\n input: string | Uint8Array, buf: typeof inputBuf, extraCap: number, minCap: number,\n ): { ptr: number; len: number } {\n if (typeof input === \"string\") {\n // Try optimistic allocation (1x for likely-ASCII), fall back to 3x for multi-byte\n let maxBytes = input.length + extraCap;\n let ptr = ensureBuf(buf, maxBytes, minCap);\n let result = encoder.encodeInto(input, new Uint8Array(engine.memory.buffer, ptr, maxBytes));\n if (result.read! < input.length) {\n // Input has multi-byte chars — reallocate with worst-case 3x\n maxBytes = input.length * 3 + extraCap;\n ptr = ensureBuf(buf, maxBytes, minCap);\n result = encoder.encodeInto(input, new Uint8Array(engine.memory.buffer, ptr, maxBytes));\n }\n return { ptr, len: result.written! };\n }\n const len = input.byteLength;\n const ptr = ensureBuf(buf, len + extraCap, minCap);\n new Uint8Array(engine.memory.buffer, ptr, len).set(input);\n return { ptr, len };\n }\n\n function writeKeyToMemory(key: string): { ptr: number; len: number } {\n if (key.length === 0) return { ptr: 1, len: 0 };\n return writeToWasm(key, keyBuf, 0, 256);\n }\n\n // --- Constants ---\n // Batch buffer address is a fixed global in WASM — cache to avoid repeated WASM calls\n const batchAddr = engine.doc_batch_ptr() >>> 0;\n\n const TAG_NULL = 0;\n const TAG_TRUE = 1;\n const TAG_FALSE = 2;\n const TAG_NUMBER = 3;\n const TAG_STRING = 4;\n const TAG_OBJECT = 5;\n const TAG_ARRAY = 6;\n\n const FEED_STATUS: readonly FeedStatus[] = [\"incomplete\", \"complete\", \"error\", \"end_early\"];\n const CLASSIFY_INCOMPLETE = 0; // FeedStatus.incomplete\n const CLASSIFY_ERR = 2; // FeedStatus.err\n const CLASSIFY_END_EARLY = 3; // FeedStatus.end_early\n\n // --- Sentinels ---\n const LAZY_PROXY = Symbol(\"vectorjson.lazy\");\n const UNCACHED = Symbol();\n\n // --- Explicit document disposal ---\n // Track generation per docId to prevent stale FinalizationRegistry callbacks\n // from freeing a reused slot. Each parse increments the generation.\n const docGenerations = new Map<number, number>();\n\n // --- FinalizationRegistry for auto-cleanup of document slots ---\n const docRegistry = new FinalizationRegistry(\n ({ docId, generation }: { docId: number; generation: number }) => {\n if (docGenerations.get(docId) !== generation) return; // stale callback\n docGenerations.delete(docId);\n docInputs.delete(docId);\n engine.doc_free(docId);\n },\n );\n\n /** Copy `count` u32 indices from the WASM batch buffer into a JS Uint32Array. */\n function copyBatchIndices(count: number): Uint32Array {\n const copy = new Uint32Array(count);\n copy.set(new Uint32Array(engine.memory.buffer, batchAddr, count));\n return copy;\n }\n\n /** Read all batch indices with pagination for >16384 items. */\n function readBatchPaginated(\n fn: (docId: number, idx: number, resume: number) => number,\n docId: number, idx: number,\n ): Uint32Array {\n const BATCH_CAP = 16384;\n let count = fn(docId, idx, 0);\n if (count < BATCH_CAP) return copyBatchIndices(count);\n const all: number[] = [];\n let page = copyBatchIndices(count);\n for (let i = 0; i < count; i++) all.push(page[i]);\n while (count === BATCH_CAP) {\n const resumeAt = new Uint32Array(engine.memory.buffer, batchAddr + BATCH_CAP * 4, 1)[0];\n count = fn(docId, idx, resumeAt);\n page = copyBatchIndices(count);\n for (let i = 0; i < count; i++) all.push(page[i]);\n }\n return new Uint32Array(all);\n }\n\n // --- Per-document original input tracking (for ASCII fast-path) ---\n // When input is a JS string and all chars are ASCII (byteLen === str.length),\n // we can slice the original string directly instead of reading WASM memory.\n const docInputs = new Map<number, string>();\n\n // --- Read a doc string at a tape index into a JS string ---\n // Strings are stored as source offsets into the original input.\n // The escape flag (batch_buffer[2]) tells us if decoding is needed,\n // avoiding a linear scan with includes('\\\\').\n function docReadString(docId: number, index: number): string {\n const rawLen = engine.doc_read_string_raw(docId, index) >>> 0;\n if (rawLen === 0) return \"\";\n\n const batch = new Uint32Array(engine.memory.buffer, batchAddr, 3);\n const srcOffset = batch[0];\n const hasEscapes = batch[2];\n\n // ASCII fast-path: if original JS string is available and was ASCII,\n // slice directly — no WASM memory read, no TextDecoder overhead.\n const asciiInput = docInputs.get(docId);\n if (asciiInput !== undefined) {\n const raw = asciiInput.slice(srcOffset, srcOffset + rawLen);\n return hasEscapes ? JSON.parse('\"' + raw + '\"') : raw;\n }\n\n const inputPtr = engine.doc_get_input_ptr(docId) >>> 0;\n const raw = utf8Decoder.decode(\n new Uint8Array(engine.memory.buffer, inputPtr + srcOffset, rawLen),\n );\n // has_escapes flag from SIMD skipString — no need for includes('\\\\')\n return hasEscapes ? JSON.parse('\"' + raw + '\"') : raw;\n }\n\n // --- Deep materialize from document tape ---\n // For containers (objects/arrays), slices the source span from WASM memory\n // and delegates to native JSON.parse — faster than recursive tape walking.\n // For primitives, reads directly from the tape.\n function deepMaterializeDoc(docId: number, index: number): unknown {\n const tag = engine.doc_get_tag(docId, index);\n if (tag === TAG_NULL) return null;\n if (tag === TAG_TRUE) return true;\n if (tag === TAG_FALSE) return false;\n if (tag === TAG_NUMBER) return engine.doc_get_number(docId, index);\n if (tag === TAG_STRING) return docReadString(docId, index);\n if (tag === TAG_OBJECT || tag === TAG_ARRAY) {\n // Get source span: opening bracket → closing bracket (inclusive)\n // doc_get_close_index returns one-past-end (simdjson convention for skipping).\n // The actual closing bracket is at closeIdx - 1.\n const startPos = (engine.doc_get_src_pos(docId, index) >>> 0);\n const closingTapeIdx = engine.doc_get_close_index(docId, index) - 1;\n const closePos = engine.doc_get_src_pos(docId, closingTapeIdx);\n const inputPtr = engine.doc_get_input_ptr(docId) >>> 0;\n const raw = new Uint8Array(\n engine.memory.buffer, inputPtr + startPos, closePos + 1 - startPos,\n );\n return JSON.parse(utf8Decoder.decode(raw));\n }\n return null;\n }\n\n /** Batch-read all element tape indices for an array (cached). */\n function batchElemIndices(target: any): Uint32Array {\n return target._e || (target._e = readBatchPaginated(engine.doc_array_elements, target._d, target._i));\n }\n\n /** Resolve a tape value: primitives return directly.\n * Objects: deep-materialize (complete parses) or Proxy (incomplete, for isComplete).\n * Arrays: always lazy Proxy. */\n function resolveValue(\n docId: number, index: number,\n keepAlive: object, generation: number,\n freeFn: (() => void) | undefined,\n proxyObjects = false,\n ): unknown {\n const tag = engine.doc_get_tag(docId, index);\n if (tag === TAG_NULL) return null;\n if (tag === TAG_TRUE) return true;\n if (tag === TAG_FALSE) return false;\n if (tag === TAG_NUMBER) return engine.doc_get_number(docId, index);\n if (tag === TAG_STRING) return docReadString(docId, index);\n\n // Objects: Proxy for incomplete parses (so isComplete can get tape index),\n // deep-materialize for complete parses (fast native property access).\n if (tag === TAG_OBJECT) {\n if (proxyObjects) {\n return new Proxy({ _d: docId, _i: index, _k: keepAlive, _g: generation, _f: freeFn } as any, docObjHandler);\n }\n return deepMaterializeDoc(docId, index);\n }\n\n // Arrays → lazy Proxy (materialize elements on access, cached)\n return new Proxy(\n Object.assign([], { _d: docId, _i: index, _k: keepAlive, _g: generation, _f: freeFn,\n _l: engine.doc_get_count(docId, index), _p: proxyObjects }),\n docArrHandler,\n );\n }\n\n // --- Shared Proxy handler for doc-backed array cursors ---\n const docArrHandler: ProxyHandler<any> = {\n get(target, prop, _receiver) {\n if (prop === 'free' || prop === Symbol.dispose) return target._f;\n if (prop === LAZY_PROXY) return target._m || (target._m = { docId: target._d, index: target._i });\n if (prop === 'length') return target._l;\n if (prop === Symbol.iterator) {\n const t = target; // single capture instead of 7 locals\n return function () {\n let i = 0;\n return {\n next() {\n if (i >= t._l) return { done: true as const, value: undefined };\n // Use indexed get to populate cache (avoids double-resolving)\n return { done: false as const, value: docArrHandler.get!(t, String(i++), t) };\n },\n };\n };\n }\n if (prop === Symbol.toStringTag) return \"Array\";\n if (typeof prop === 'string') {\n const idx = Number(prop);\n if (Number.isInteger(idx) && idx >= 0 && idx < target._l) {\n if (!target._c) target._c = new Array(target._l);\n if (target._c[idx] !== undefined) return target._c[idx];\n const indices = batchElemIndices(target);\n const val = resolveValue(target._d, indices[idx], target._k, target._g, target._f, target._p);\n target._c[idx] = val;\n return val;\n }\n if (prop in Array.prototype) {\n const materialized = deepMaterializeDoc(target._d, target._i) as unknown[];\n return (materialized as unknown as Record<string, unknown>)[prop];\n }\n }\n return undefined;\n },\n has(target, prop) {\n if (prop === LAZY_PROXY || prop === 'free' || prop === Symbol.dispose || prop === 'length') return true;\n if (typeof prop !== 'string') return false;\n const idx = Number(prop);\n return Number.isInteger(idx) && idx >= 0 && idx < target._l;\n },\n ownKeys(target) {\n const keys: string[] = [];\n for (let i = 0; i < target._l; i++) keys.push(String(i));\n keys.push('length');\n return keys;\n },\n getOwnPropertyDescriptor(target, prop) {\n if (prop === 'length') {\n return { value: target._l, writable: false, enumerable: false, configurable: false };\n }\n if (typeof prop === 'string') {\n const idx = Number(prop);\n if (Number.isInteger(idx) && idx >= 0 && idx < target._l) {\n return { value: this.get!(target, prop, target), writable: false, enumerable: true, configurable: true };\n }\n }\n return undefined;\n },\n };\n\n // --- Shared Proxy handler for doc-backed object proxies (incomplete parses) ---\n // doc_find_field compares raw source bytes against the key. For keys with\n // escape sequences (\\n, \\uXXXX), raw comparison fails — we fall back to\n // ownKeys iteration which properly decodes each key via docReadString.\n const docObjHandler: ProxyHandler<any> = {\n get(target, prop, _receiver) {\n if (prop === 'free' || prop === Symbol.dispose) return target._f;\n if (prop === LAZY_PROXY) return target._m || (target._m = { docId: target._d, index: target._i });\n if (typeof prop !== 'string') return prop === Symbol.toStringTag ? \"Object\" : undefined;\n if (!target._c) target._c = Object.create(null);\n if (prop in target._c) return target._c[prop];\n const { ptr, len } = writeKeyToMemory(prop);\n const valIdx = engine.doc_find_field(target._d, target._i, ptr, len);\n if (valIdx !== 0) {\n // Fast path: key matched raw source bytes (no escapes)\n const val = resolveValue(target._d, valIdx, target._k, target._g, target._f, true);\n target._c[prop] = val;\n return val;\n }\n // Fallback: escaped keys won't match raw bytes — iterate all keys\n const keys = this.ownKeys!(target) as string[];\n const keyIdx = keys.indexOf(prop);\n if (keyIdx === -1) return undefined;\n // Resolve value via cached key tape indices\n const val = resolveValue(target._d, target._ki[keyIdx] + 1, target._k, target._g, target._f, true);\n target._c[prop] = val;\n return val;\n },\n has(target, prop) {\n if (prop === LAZY_PROXY || prop === 'free' || prop === Symbol.dispose) return true;\n if (typeof prop !== 'string') return false;\n const { ptr, len } = writeKeyToMemory(prop);\n if (engine.doc_find_field(target._d, target._i, ptr, len) !== 0) return true;\n // Fallback for escaped keys\n const keys = this.ownKeys!(target) as string[];\n return keys.includes(prop);\n },\n ownKeys(target) {\n if (!target._keys) {\n const indices = readBatchPaginated(engine.doc_object_keys, target._d, target._i);\n target._ki = indices;\n target._keys = Array.from(indices, (idx) => docReadString(target._d, idx));\n }\n return target._keys;\n },\n getOwnPropertyDescriptor(target, prop) {\n if (typeof prop !== 'string') return undefined;\n // JSON cannot produce undefined — get() returning undefined means field not found\n const val = this.get!(target, prop, target);\n if (val === undefined) return undefined;\n return { value: val, writable: false, enumerable: true, configurable: true };\n },\n };\n\n // --- Check if a value is a lazy proxy ---\n function isLazyProxy(value: unknown): boolean {\n if (value === null || typeof value !== \"object\") return false;\n try { return LAZY_PROXY in (value as Record<symbol, unknown>); }\n catch { return false; }\n }\n\n // --- Build a value from a doc slot root (shared by parse + createParser) ---\n function buildDocRoot(docId: number, proxyObjects = false): unknown {\n const rootTag = engine.doc_get_tag(docId, 1);\n // Primitives: extract value and free doc immediately (no Proxy needed)\n if (rootTag <= TAG_STRING) {\n const value = rootTag === TAG_NULL ? null\n : rootTag === TAG_TRUE ? true\n : rootTag === TAG_FALSE ? false\n : rootTag === TAG_NUMBER ? engine.doc_get_number(docId, 1)\n : docReadString(docId, 1);\n docInputs.delete(docId);\n engine.doc_free(docId);\n return value;\n }\n // Containers: register for GC and wrap in Proxy with manual .free()\n const generation = (docGenerations.get(docId) ?? 0) + 1;\n docGenerations.set(docId, generation);\n const keepAlive = { docId };\n docRegistry.register(keepAlive, { docId, generation }, keepAlive);\n const freeFn = () => {\n void keepAlive; // prevent GC of sentinel\n if (docGenerations.get(docId) !== generation) return;\n docGenerations.delete(docId);\n docInputs.delete(docId);\n engine.doc_free(docId);\n docRegistry.unregister(keepAlive);\n };\n // Root always gets Proxy so .free() is accessible; force objects to Proxy for isComplete()\n return resolveValue(docId, 1, keepAlive, generation, freeFn, rootTag === TAG_OBJECT || proxyObjects);\n }\n\n // --- Helper: retry doc_parse with GC on slot exhaustion ---\n function tryDocParse(p: number, l: number): number {\n let docId = engine.doc_parse(p, l);\n if (docId < 0) {\n const errCode = engine.get_error_code();\n if (errCode === 2 || errCode === 13) {\n if (typeof globalThis.gc === \"function\") globalThis.gc();\n docId = engine.doc_parse(p, l);\n }\n }\n return docId;\n }\n\n // --- Helpers ---\n function isReadableStream(s: any): s is ReadableStream {\n return typeof s?.getReader === 'function';\n }\n\n // --- Path Pattern Compiler ---\n // Segments: string = key, number = index, '*' = wildcard\n\n function compilePath(pattern: string): PathSegment[] {\n return pattern.replace(/\\[(\\*|\\d+)\\]/g, '.$1').split('.').filter(Boolean)\n .map(s => s === '*' ? '*' : /^\\d+$/.test(s) ? +s : s);\n }\n\n function buildResolvedPath(keyStack: (string | null)[], indexStack: (number | null)[], depth: number): string {\n const parts: string[] = [];\n for (let i = 0; i < depth; i++) {\n if (keyStack[i] !== null) parts.push(keyStack[i]!);\n else if (indexStack[i] !== null) parts.push(String(indexStack[i]));\n }\n return parts.join('.');\n }\n\n // --- Public API ---\n _instance = {\n parse(input: string | Uint8Array): ParseResult {\n // Write input into reusable WASM buffer with extra headroom for autocomplete\n const { ptr, len } = writeToWasm(input, inputBuf, 64, 4096);\n // Pad after input for SIMD safety\n new Uint8Array(engine.memory.buffer, ptr + len, 64).fill(0x20);\n\n // Helper: build ParseResult with isComplete() and toJSON()\n const makeResult = (\n status: ParseStatus,\n value: unknown,\n autocompleteBoundary: number,\n toJSONStr: string | undefined,\n remaining?: Uint8Array,\n error?: string,\n ): ParseResult => {\n let _toJSONCache: unknown = UNCACHED;\n return {\n status,\n value,\n remaining,\n error,\n isComplete(val: unknown): boolean {\n if (autocompleteBoundary === Infinity) return true;\n if (val === null || val === undefined || typeof val !== \"object\") return true;\n try {\n const handle = (val as any)[LAZY_PROXY] as { docId?: number; index?: number } | undefined;\n if (!handle || typeof handle.docId !== \"number\") return true;\n const tag = engine.doc_get_tag(handle.docId, handle.index!);\n if (tag === TAG_OBJECT || tag === TAG_ARRAY) {\n const closeIdx = engine.doc_get_close_index(handle.docId, handle.index!);\n const closeSrcPos = engine.doc_get_src_pos(handle.docId, closeIdx) >>> 0;\n return closeSrcPos < autocompleteBoundary;\n }\n return true;\n } catch {\n return true; // fail-safe: freed doc → treat as complete\n }\n },\n toJSON(): unknown {\n if (_toJSONCache !== UNCACHED) return _toJSONCache;\n return (_toJSONCache = toJSONStr !== undefined ? JSON.parse(toJSONStr) : value);\n },\n };\n };\n\n // Helper: build an invalid ParseResult from the last engine error code\n const invalidResult = (msg?: string): ParseResult => {\n if (!msg) {\n const code = engine.get_error_code();\n msg = `VectorJSON: ${ERROR_MESSAGES[code] || `Parse error (code ${code})`}`;\n }\n return makeResult(\"invalid\", undefined, Infinity, undefined, undefined, msg);\n };\n\n // Track whether input is an ASCII JS string (byteLen === str.length).\n // If so, docReadString can slice the original string directly.\n const isAsciiStr = typeof input === \"string\" && len === input.length;\n\n // ── Happy path: try doc_parse directly (no classify overhead) ──\n let docId = tryDocParse(ptr, len);\n if (docId >= 0) {\n if (isAsciiStr) docInputs.set(docId, input as string);\n // For string input at full length, reuse the original string (avoids decode)\n const toJSONStr = typeof input === \"string\" ? input\n : utf8Decoder.decode(new Uint8Array(engine.memory.buffer, ptr, len));\n return makeResult(\"complete\", buildDocRoot(docId), Infinity, toJSONStr);\n }\n\n // ── doc_parse failed — classify to determine why ──\n const classification = engine.classify_input(ptr, len);\n\n if (classification === CLASSIFY_ERR) {\n return invalidResult(\"Invalid JSON structure\");\n }\n\n if (classification === CLASSIFY_END_EARLY) {\n const parseLen = engine.get_value_end();\n const remainLen = len - parseLen;\n const remainingCopy = new Uint8Array(remainLen);\n remainingCopy.set(new Uint8Array(engine.memory.buffer, ptr + parseLen, remainLen));\n new Uint8Array(engine.memory.buffer, ptr + parseLen, 64).fill(0x20);\n\n const toJSONStr = utf8Decoder.decode(new Uint8Array(engine.memory.buffer, ptr, parseLen));\n docId = tryDocParse(ptr, parseLen);\n if (docId >= 0) {\n if (isAsciiStr) docInputs.set(docId, input as string);\n return makeResult(\"complete_early\", buildDocRoot(docId), Infinity, toJSONStr, remainingCopy);\n }\n return invalidResult();\n }\n\n if (classification === CLASSIFY_INCOMPLETE) {\n const parseLen = engine.autocomplete_input(ptr, len, inputBuf.cap);\n if (parseLen === 0) {\n if (len === 0) return makeResult(\"incomplete\", undefined, len, undefined);\n return invalidResult(\"Invalid JSON structure\");\n }\n const toJSONStr = utf8Decoder.decode(new Uint8Array(engine.memory.buffer, ptr, parseLen));\n docId = tryDocParse(ptr, parseLen);\n if (docId >= 0) {\n // Don't use ASCII fast-path for incomplete: autocomplete appended\n // closing tokens that aren't in the original JS string.\n return makeResult(\"incomplete\", buildDocRoot(docId, true), len, toJSONStr);\n }\n return invalidResult();\n }\n\n return invalidResult();\n },\n\n deepCompare(a: unknown, b: unknown, options?: { ignoreKeyOrder?: boolean }): boolean {\n const ordered = (options?.ignoreKeyOrder === false) ? 1 : 0;\n\n // Fast path: both are VJ proxies → WASM tape comparison.\n // Single [LAZY_PROXY] access per arg (1 Proxy get trap) instead of\n // isLazyProxy + [LAZY_PROXY] (has trap + get trap + object allocation × 2).\n if (a !== null && typeof a === \"object\" && b !== null && typeof b === \"object\") {\n try {\n const metaA = (a as any)[LAZY_PROXY] as { docId: number; index: number } | undefined;\n const metaB = (b as any)[LAZY_PROXY] as { docId: number; index: number } | undefined;\n if (metaA && metaB) {\n const result = engine.doc_deep_equal(metaA.docId, metaA.index, metaB.docId, metaB.index, ordered);\n if (result >= 0) return result === 1;\n // fallthrough on error (-1 = invalid doc_id)\n }\n } catch { /* not a proxy, fall through */ }\n }\n\n // Fallback: materialize and compare with JSON round-trip\n return JSON.stringify(a) === JSON.stringify(b);\n },\n\n materialize(value: unknown): unknown {\n if (!isLazyProxy(value)) return value;\n const { docId, index } = (value as any)[LAZY_PROXY];\n return deepMaterializeDoc(docId, index);\n },\n\n parsePartialJson(input: string, schema?: { safeParse: (v: unknown) => { success: boolean; data?: unknown } }): PartialJsonResult {\n if (!input) return { value: undefined, state: \"failed-parse\" as const };\n const result = _instance!.parse(input);\n switch (result.status) {\n case \"complete\":\n case \"complete_early\": {\n const value = result.toJSON();\n if (schema) {\n const validated = schema.safeParse(value);\n if (validated.success) return { value: validated.data, state: \"successful-parse\" as const };\n return { value: undefined, state: \"successful-parse\" as const };\n }\n return { value, state: \"successful-parse\" as const };\n }\n case \"incomplete\": {\n const value = result.toJSON();\n if (schema) {\n const validated = schema.safeParse(value);\n if (validated.success) return { value: validated.data, state: \"repaired-parse\" as const };\n // Partial JSON: safeParse fails (missing fields expected) → keep raw value\n return { value, state: \"repaired-parse\" as const };\n }\n return { value, state: \"repaired-parse\" as const };\n }\n default:\n return { value: undefined, state: \"failed-parse\" as const };\n }\n },\n\n createEventParser(options?: {\n multiRoot?: boolean;\n onRoot?: (event: RootEvent) => void;\n }): EventParser {\n const multiRoot = options?.multiRoot ?? false;\n const onRootCb = options?.onRoot;\n\n const streamId = engine.stream_create();\n if (streamId < 0) {\n throw new Error(\"VectorJSON: Failed to create event parser (max 4 concurrent)\");\n }\n\n let destroyed = false;\n let rootIndex = 0;\n\n // --- Subscription storage ---\n type Sub = { segments: PathSegment[]; callback: Function; schema?: { safeParse: Function } };\n const pathSubs: Sub[] = [];\n const deltaSubs: Sub[] = [];\n const skipPatterns: PathSegment[][] = [];\n const textCallbacks: ((text: string) => void)[] = [];\n\n // --- JSON Seeker state ---\n const SEEKER_SEEKING = 0, SEEKER_IN_THINK = 1, SEEKER_IN_FENCE = 2, SEEKER_FEEDING = 3;\n let seekerState = SEEKER_SEEKING;\n let seekerBuf = ''; // accumulates non-JSON text for seeking\n let fenceBacktickCount = 0;\n\n function seekerFeed(text: string): string | null {\n // In FEEDING state, pass through directly\n if (seekerState === SEEKER_FEEDING) return text;\n\n let result = '';\n let i = 0;\n\n while (i < text.length) {\n if (seekerState === SEEKER_FEEDING) {\n result += text.slice(i);\n break;\n }\n\n if (seekerState === SEEKER_IN_THINK) {\n const closeIdx = text.indexOf('</think>', i);\n if (closeIdx === -1) {\n const captured = text.slice(i);\n for (const cb of textCallbacks) cb(captured);\n i = text.length;\n } else {\n const captured = text.slice(i, closeIdx);\n if (captured) for (const cb of textCallbacks) cb(captured);\n i = closeIdx + '</think>'.length;\n seekerState = SEEKER_SEEKING;\n seekerBuf = '';\n }\n continue;\n }\n\n if (seekerState === SEEKER_IN_FENCE) {\n // Look for closing fence\n const closeFence = '`'.repeat(fenceBacktickCount);\n const closeIdx = text.indexOf(closeFence, i);\n if (closeIdx === -1) {\n result += text.slice(i);\n i = text.length;\n } else {\n result += text.slice(i, closeIdx);\n i = closeIdx + fenceBacktickCount;\n fenceBacktickCount = 0;\n seekerState = SEEKER_SEEKING;\n seekerBuf = '';\n }\n continue;\n }\n\n // SEEKING state\n const ch = text[i];\n\n // Definitive JSON start characters → switch to FEEDING\n // Only { [ \" are reliable indicators — bare keywords (t/f/n) and\n // digits can appear in prose, so we only treat them as JSON start\n // if they're not part of other content.\n if (ch === '{' || ch === '[' || ch === '\"') {\n // Flush remaining seeker buf as text\n if (seekerBuf) {\n for (const cb of textCallbacks) cb(seekerBuf);\n seekerBuf = '';\n }\n seekerState = SEEKER_FEEDING;\n result += text.slice(i);\n break;\n }\n\n // Check for <think> tag\n seekerBuf += ch;\n if (seekerBuf.endsWith('<think>')) {\n const beforeTag = seekerBuf.slice(0, -'<think>'.length);\n if (beforeTag) for (const cb of textCallbacks) cb(beforeTag);\n seekerState = SEEKER_IN_THINK;\n seekerBuf = '';\n i++;\n continue;\n }\n\n // Check for code fence (``` with optional label)\n if (ch === '`') {\n // Count consecutive backticks\n let btCount = 0;\n let j = i;\n while (j < text.length && text[j] === '`') { btCount++; j++; }\n if (btCount >= 3) {\n // Skip label (e.g., \"json\") until newline\n while (j < text.length && text[j] !== '\\n') j++;\n if (j < text.length) j++; // skip the newline\n fenceBacktickCount = btCount;\n seekerState = SEEKER_IN_FENCE;\n const beforeFence = seekerBuf.slice(0, -1); // remove only the 1 backtick appended to seekerBuf\n if (beforeFence) for (const cb of textCallbacks) cb(beforeFence);\n seekerBuf = '';\n i = j;\n continue;\n }\n }\n\n // Whitespace and other non-JSON chars — keep seeking\n i++;\n\n // Flush accumulated non-JSON text periodically\n if (seekerBuf.length > 1024) {\n for (const cb of textCallbacks) cb(seekerBuf);\n seekerBuf = '';\n }\n }\n\n if (result.length > 0) return result;\n return null;\n }\n\n // --- PathTracker state ---\n let ptDepth = 0;\n let ptInString = false;\n let ptEscapeNext = false;\n let ptContextStack: ('o' | 'a')[] = []; // object or array at each level\n let ptKeyStack: (string | null)[] = []; // current key at each depth\n let ptIndexStack: (number | null)[] = []; // current array index at each depth\n let ptValueStartStack: number[] = []; // byte offset where value started\n let ptSkipDepth = -1; // if >= 0, we're inside a skipped path\n let ptExpectingKey = false;\n let ptAfterColon = false;\n let ptKeyAccum = '';\n let ptAccumulatingKey = false;\n let ptStringValueStart = -1;\n let ptInStringValue = false;\n let ptDeltaAccum = '';\n let ptDeltaByteStart = 0; // byte offset where current delta accumulation started\n let ptInScalar = false; // tracking a scalar that may span chunks\n let ptScalarStart = -1; // byte offset where current scalar started\n\n // --- Live document builder ---\n // Incrementally builds a JS object/array as bytes are scanned.\n // getValue() returns this growing object. O(n) total materialization.\n let ldRoot: unknown = undefined; // the growing root value\n let ldStack: (Record<string, unknown> | unknown[])[] = []; // container stack\n let ldCurrentKey: string | null = null; // pending key for object assignment\n let ldActiveKey: string | null = null; // key used for current string being updated\n let ldStringAccum = ''; // accumulating string value\n let ldInStringValue = false; // currently inside a string value\n let ldScalarAccum = ''; // accumulating scalar chars\n\n function ldSetValue(value: unknown) {\n if (ldStack.length === 0) {\n ldRoot = value;\n return;\n }\n const parent = ldStack[ldStack.length - 1];\n if (Array.isArray(parent)) {\n parent.push(value);\n } else if (ldCurrentKey !== null) {\n parent[ldCurrentKey] = value;\n ldActiveKey = ldCurrentKey; // remember key for in-place updates\n ldCurrentKey = null;\n }\n }\n\n // Update a string/scalar value in-place (for partial strings being built)\n function ldUpdateString(str: string) {\n if (ldStack.length === 0) {\n ldRoot = str;\n return;\n }\n const parent = ldStack[ldStack.length - 1];\n if (Array.isArray(parent)) {\n if (parent.length > 0) parent[parent.length - 1] = str;\n else parent.push(str);\n } else if (ldActiveKey !== null) {\n parent[ldActiveKey] = str;\n }\n }\n\n function ldReset() {\n ldRoot = undefined;\n ldStack.length = 0;\n ldCurrentKey = null;\n ldActiveKey = null;\n ldStringAccum = '';\n ldInStringValue = false;\n ldScalarAccum = '';\n }\n\n function ptReset() {\n ptDepth = 0; ptInString = false; ptEscapeNext = false;\n ptContextStack.length = 0; ptKeyStack.length = 0;\n ptIndexStack.length = 0; ptValueStartStack.length = 0;\n ptSkipDepth = -1; ptExpectingKey = false; ptAfterColon = false;\n ptKeyAccum = ''; ptAccumulatingKey = false;\n ptStringValueStart = -1; ptInStringValue = false;\n ptDeltaAccum = ''; ptDeltaByteStart = 0;\n ptInScalar = false; ptScalarStart = -1;\n ldReset();\n }\n\n /** Unified path matcher: exact = segments.length must equal depth, prefix = <= depth.\n * Returns wildcard matches on success, null on failure. */\n function matchPath(segments: PathSegment[], exact: boolean): (string | number)[] | null {\n const len = segments.length;\n if (exact ? len !== ptDepth : len > ptDepth) return null;\n const matches: (string | number)[] = [];\n for (let s = 0; s < len; s++) {\n const seg = segments[s];\n const key = ptKeyStack[s], idx = ptIndexStack[s];\n if (seg === '*') matches.push(idx !== null ? idx : (key ?? ''));\n else if (typeof seg === 'number' ? idx !== seg : key !== seg) return null;\n }\n return matches;\n }\n\n function isPathSkipped(): boolean {\n return skipPatterns.length > 0 && skipPatterns.some(p => matchPath(p, false) !== null);\n }\n\n function fireValueComplete(valueBytes: Uint8Array, offset: number, length: number) {\n if (pathSubs.length === 0) return;\n const resolvedPath = buildResolvedPath(ptKeyStack, ptIndexStack, ptDepth);\n for (const sub of pathSubs) {\n const matches = matchPath(sub.segments, true);\n if (!matches) continue;\n let value: unknown;\n try { value = JSON.parse(utf8Decoder.decode(valueBytes)); } catch { continue; }\n if (sub.schema) {\n const result = sub.schema.safeParse(value);\n if (!result.success) continue;\n value = result.data;\n }\n const event: PathEvent = { type: 'value', path: resolvedPath, value, offset, length, matches };\n for (let i = matches.length - 1; i >= 0; i--) {\n const m = matches[i];\n if (typeof m === 'number' && event.index === undefined) event.index = m;\n if (typeof m === 'string' && event.key === undefined) event.key = m;\n }\n sub.callback(event as any);\n }\n }\n\n function fireDelta(value: string, offset: number, length: number) {\n if (deltaSubs.length === 0) return;\n const resolvedPath = buildResolvedPath(ptKeyStack, ptIndexStack, ptDepth);\n for (const sub of deltaSubs) {\n if (!matchPath(sub.segments, true)) continue;\n sub.callback({ type: 'delta', path: resolvedPath, value, offset, length });\n }\n }\n\n function ptScan(buf: Uint8Array, from: number, to: number) {\n for (let i = from; i < to; i++) {\n const c = buf[i];\n\n // Check if we're continuing a scalar from a previous chunk\n if (ptInScalar) {\n if (c === 0x2C || c === 0x7D || c === 0x5D || c === 0x20 || c === 0x0A || c === 0x0D || c === 0x09) {\n // Scalar ended — fire value complete for the whole span\n const scalarLen = i - ptScalarStart;\n fireValueComplete(buf.slice(ptScalarStart, i), ptScalarStart, scalarLen);\n // Live doc: finalize scalar\n try { ldSetValue(JSON.parse(ldScalarAccum)); } catch { ldSetValue(null); }\n ldScalarAccum = '';\n ptInScalar = false;\n ptScalarStart = -1;\n // Re-process this delimiter char (it may be comma/close bracket)\n i--;\n continue;\n }\n // Still inside the scalar, keep scanning\n ldScalarAccum += B2C[c];\n continue;\n }\n\n if (ptEscapeNext) {\n ptEscapeNext = false;\n if (ptInStringValue && ptSkipDepth < 0) {\n // Decode escape for delta\n let decoded: string;\n switch (c) {\n case 0x6E: decoded = '\\n'; break; // n\n case 0x72: decoded = '\\r'; break; // r\n case 0x74: decoded = '\\t'; break; // t\n case 0x22: decoded = '\"'; break; // \"\n case 0x5C: decoded = '\\\\'; break; // \\\n case 0x2F: decoded = '/'; break; // /\n case 0x62: decoded = '\\b'; break; // b\n case 0x66: decoded = '\\f'; break; // f\n default: decoded = B2C[c]; break;\n }\n ptDeltaAccum += decoded;\n // Live doc: accumulate decoded escape char (batched — flushed at string close or chunk end)\n if (ldInStringValue) {\n ldStringAccum += decoded;\n }\n if (ptAccumulatingKey) ptKeyAccum += decoded;\n } else if (ptAccumulatingKey) {\n ptKeyAccum += B2C[c];\n }\n continue;\n }\n\n if (ptInString) {\n if (c === 0x5C) { // backslash\n ptEscapeNext = true;\n continue;\n }\n if (c === 0x22) { // closing quote\n ptInString = false;\n if (ptAccumulatingKey) {\n ptAccumulatingKey = false;\n // Store key at parent depth (ptDepth-1) since we're inside the container\n if (ptDepth > 0) ptKeyStack[ptDepth - 1] = ptKeyAccum;\n // Live doc: store key for next value assignment\n ldCurrentKey = ptKeyAccum;\n ptKeyAccum = '';\n continue;\n }\n // End of string value\n if (ptInStringValue && ptSkipDepth < 0) {\n // Flush final delta — use tracked byte offsets, not decoded char count\n if (ptDeltaAccum && deltaSubs.length > 0) {\n const deltaByteLen = i - ptDeltaByteStart; // raw bytes from start to closing quote\n fireDelta(ptDeltaAccum, ptDeltaByteStart, deltaByteLen);\n }\n ptDeltaAccum = '';\n // Fire value complete for the string\n const start = ptStringValueStart;\n const len = i + 1 - start;\n fireValueComplete(buf.slice(start, i + 1), start, len);\n // Live doc: final update (value already in parent from ldSetValue('') at open)\n ldUpdateString(ldStringAccum);\n ldStringAccum = '';\n ldInStringValue = false;\n }\n ptInStringValue = false;\n ptStringValueStart = -1;\n continue;\n }\n // Regular string character\n if (ptInStringValue && ptSkipDepth < 0) {\n const ch = B2C[c];\n ptDeltaAccum += ch;\n // Live doc: accumulate string char (batched — flushed at string close or chunk end)\n if (ldInStringValue) ldStringAccum += ch;\n if (ptAccumulatingKey) ptKeyAccum += ch;\n } else if (ptAccumulatingKey) {\n ptKeyAccum += B2C[c];\n }\n continue;\n }\n\n // Not in string\n switch (c) {\n case 0x7B: { // {\n ptContextStack[ptDepth] = 'o';\n ptKeyStack[ptDepth] = null;\n ptIndexStack[ptDepth] = null;\n ptValueStartStack[ptDepth] = i;\n ptDepth++;\n ptExpectingKey = true;\n ptAfterColon = false;\n // Check if we should skip this depth\n if (ptSkipDepth < 0 && isPathSkipped()) {\n ptSkipDepth = ptDepth - 1;\n }\n // Live doc: create object and push to stack\n const obj: Record<string, unknown> = {};\n ldSetValue(obj);\n ldStack.push(obj);\n break;\n }\n case 0x5B: { // [\n ptContextStack[ptDepth] = 'a';\n ptKeyStack[ptDepth] = null;\n ptIndexStack[ptDepth] = 0;\n ptValueStartStack[ptDepth] = i;\n ptDepth++;\n ptExpectingKey = false;\n ptAfterColon = false;\n if (ptSkipDepth < 0 && isPathSkipped()) {\n ptSkipDepth = ptDepth - 1;\n }\n // Live doc: create array and push to stack\n const arr: unknown[] = [];\n ldSetValue(arr);\n ldStack.push(arr);\n break;\n }\n case 0x7D: // }\n case 0x5D: { // ]\n ptDepth--;\n const wasSkipped = ptSkipDepth >= 0;\n if (wasSkipped && ptDepth <= ptSkipDepth) {\n ptSkipDepth = -1;\n }\n // Fire value complete for the container (only if not exiting a skipped path)\n if (ptDepth >= 0 && ptSkipDepth < 0 && !wasSkipped) {\n const start = ptValueStartStack[ptDepth];\n const len = i + 1 - start;\n fireValueComplete(buf.slice(start, i + 1), start, len);\n }\n // Restore parent context\n if (ptDepth > 0) {\n const parentCtx = ptContextStack[ptDepth - 1];\n ptExpectingKey = parentCtx === 'o';\n ptAfterColon = false;\n }\n // Live doc: pop container from stack\n ldStack.pop();\n break;\n }\n case 0x22: { // opening quote\n ptInString = true;\n if (ptExpectingKey && ptSkipDepth < 0) {\n // Start accumulating key\n ptAccumulatingKey = true;\n ptKeyAccum = '';\n } else if (ptAfterColon || ptDepth === 0 || (ptDepth > 0 && ptContextStack[ptDepth - 1] === 'a')) {\n // String value — only track if not in a skipped path\n if (ptSkipDepth < 0 && !isPathSkipped()) {\n ptInStringValue = true;\n ptStringValueStart = i;\n ptDeltaAccum = '';\n ptDeltaByteStart = i + 1; // byte after opening quote\n // Live doc: start string value accumulation\n ldStringAccum = '';\n ldInStringValue = true;\n // Push an empty string as placeholder so updates work\n ldSetValue('');\n }\n ptAfterColon = false;\n }\n break;\n }\n case 0x3A: { // colon\n ptExpectingKey = false;\n ptAfterColon = true;\n // Live doc: set null placeholder for pending key\n if (ldCurrentKey !== null && ldStack.length > 0) {\n const parent = ldStack[ldStack.length - 1];\n if (!Array.isArray(parent)) {\n (parent as Record<string, unknown>)[ldCurrentKey] = null;\n ldActiveKey = ldCurrentKey;\n }\n }\n break;\n }\n case 0x2C: { // comma\n // In array: increment index\n if (ptDepth > 0 && ptContextStack[ptDepth - 1] === 'a') {\n const idx = ptIndexStack[ptDepth - 1];\n ptIndexStack[ptDepth - 1] = (idx ?? -1) + 1;\n // Check skip for new array index\n if (ptSkipDepth < 0 && isPathSkipped()) {\n ptSkipDepth = ptDepth - 1;\n }\n }\n // In object: expect next key\n if (ptDepth > 0 && ptContextStack[ptDepth - 1] === 'o') {\n ptExpectingKey = true;\n ptKeyStack[ptDepth - 1] = null;\n }\n ptAfterColon = false;\n break;\n }\n default: {\n // Scalar values (numbers, true, false, null)\n if (ptAfterColon || ptDepth === 0 || (ptDepth > 0 && ptContextStack[ptDepth - 1] === 'a')) {\n if (c >= 0x30 && c <= 0x39 || c === 0x2D || c === 0x74 || c === 0x66 || c === 0x6E) {\n // Find end of scalar\n if (ptSkipDepth < 0 && !isPathSkipped()) {\n let j = i + 1;\n while (j < to) {\n const sc = buf[j];\n if (sc === 0x2C || sc === 0x7D || sc === 0x5D || sc === 0x20 || sc === 0x0A || sc === 0x0D || sc === 0x09) break;\n j++;\n }\n if (j < to) {\n // Complete scalar within this chunk\n fireValueComplete(buf.slice(i, j), i, j - i);\n // Live doc: parse and set scalar value\n const scalarStr = utf8Decoder.decode(buf.slice(i, j));\n try { ldSetValue(JSON.parse(scalarStr)); } catch { ldSetValue(null); }\n i = j - 1; // -1 because loop will increment\n } else {\n // Scalar extends past this chunk — track it\n ptInScalar = true;\n ptScalarStart = i;\n ldScalarAccum = utf8Decoder.decode(buf.slice(i, to));\n i = to; // skip to end, will resume on next feed\n }\n }\n ptAfterColon = false;\n }\n }\n break;\n }\n }\n }\n\n // Flush accumulated string to live doc parent (batched update)\n if (ldInStringValue && ldStringAccum) {\n ldUpdateString(ldStringAccum);\n }\n\n // Flush accumulated deltas at end of each feed for in-progress strings\n // This ensures onDelta fires incrementally per feed(), not just at string close\n if (ptInStringValue && ptDeltaAccum.length > 0 && ptSkipDepth < 0 && deltaSubs.length > 0) {\n fireDelta(ptDeltaAccum, ptDeltaByteStart, to - ptDeltaByteStart);\n ptDeltaAccum = '';\n ptDeltaByteStart = to;\n }\n }\n\n // --- EventParser object ---\n const self: EventParser = {\n on(path: string, ...args: any[]): EventParser {\n let schema: { safeParse: Function } | undefined;\n let callback: (event: PathEvent) => void;\n if (args.length === 2 && typeof args[0] === 'object' && args[0] !== null && 'safeParse' in args[0]) {\n schema = args[0];\n callback = args[1];\n } else {\n callback = args[0];\n }\n pathSubs.push({ segments: compilePath(path), callback, schema });\n return self;\n },\n\n onDelta(path: string, callback: (event: DeltaEvent) => void): EventParser {\n deltaSubs.push({ segments: compilePath(path), callback });\n return self;\n },\n\n onText(callback: (text: string) => void): EventParser {\n textCallbacks.push(callback);\n return self;\n },\n\n skip(...paths: string[]): EventParser {\n for (const p of paths) skipPatterns.push(compilePath(p));\n return self;\n },\n\n off(path: string, callback?: Function): EventParser {\n const compiled = compilePath(path);\n const eq = (a: PathSegment[], b: PathSegment[]) =>\n a.length === b.length && a.every((s, i) => s === b[i]);\n const remove = (subs: Sub[]) => {\n for (let i = subs.length - 1; i >= 0; i--) {\n if (eq(subs[i].segments, compiled) && (!callback || subs[i].callback === callback))\n subs.splice(i, 1);\n }\n };\n remove(pathSubs);\n remove(deltaSubs);\n return self;\n },\n\n feed(chunk: string | Uint8Array): FeedStatus {\n if (destroyed) throw new Error(\"EventParser already destroyed\");\n\n // Run through JSON seeker first\n let jsonContent: string | Uint8Array | null;\n if (typeof chunk === 'string') {\n jsonContent = seekerFeed(chunk);\n if (jsonContent === null) return FEED_STATUS[engine.stream_get_status(streamId)]!;\n } else if (seekerState === SEEKER_FEEDING) {\n // Fast path: skip string conversion when seeker is already feeding JSON\n jsonContent = chunk;\n } else {\n const str = utf8Decoder.decode(chunk);\n const result = seekerFeed(str);\n if (result === null) return FEED_STATUS[engine.stream_get_status(streamId)]!;\n jsonContent = encoder.encode(result);\n }\n\n // Feed to WASM stream\n const { ptr, len } = writeToWasm(jsonContent, feedBuf, 0, 4096);\n const prevLen = engine.stream_get_buffer_len(streamId);\n const status = engine.stream_feed(streamId, ptr, len);\n const newLen = engine.stream_get_buffer_len(streamId);\n\n // Scan new bytes with PathTracker (always runs — needed for live document builder)\n if (newLen > prevLen) {\n const bufPtr = (engine.stream_get_buffer_ptr(streamId) >>> 0);\n // For end_early/complete: only scan up to the value boundary\n const scanEnd = (status === 1 || status === 3)\n ? Math.min(newLen, engine.stream_get_value_len(streamId))\n : newLen;\n if (scanEnd > prevLen) {\n const wasmBuf = new Uint8Array(engine.memory.buffer, bufPtr, scanEnd);\n ptScan(wasmBuf, prevLen, scanEnd);\n }\n // Finalize pending scalar on complete/end_early\n if ((status === 1 || status === 3) && ptInScalar && ldScalarAccum) {\n try { ldSetValue(JSON.parse(ldScalarAccum)); } catch { ldSetValue(null); }\n ldScalarAccum = '';\n ptInScalar = false;\n ptScalarStart = -1;\n }\n }\n\n const feedStatus = FEED_STATUS[status] || \"error\";\n\n // Multi-root handling: drain all complete values\n if (multiRoot && (feedStatus === 'complete' || feedStatus === 'end_early')) {\n let loopGuard = 0;\n while (loopGuard++ < 10000) {\n const curStatus = engine.stream_get_status(streamId);\n if (curStatus !== 1 && curStatus !== 3) break; // not complete/end_early\n\n // Copy value bytes before reset (SIMD padding would overwrite remaining)\n const bp = (engine.stream_get_buffer_ptr(streamId) >>> 0);\n const vl = engine.stream_get_value_len(streamId);\n const valueCopy = new Uint8Array(vl + 64);\n valueCopy.set(new Uint8Array(engine.memory.buffer, bp, vl));\n // Pad copy for SIMD safety\n valueCopy.fill(0x20, vl);\n\n // Reset stream for next value BEFORE parsing (preserves remaining bytes)\n const remaining = engine.stream_reset_for_next(streamId);\n ptReset();\n\n // Now parse the copied value bytes\n const parsePtr = engine.alloc(valueCopy.length) >>> 0;\n if (parsePtr) {\n new Uint8Array(engine.memory.buffer, parsePtr, valueCopy.length).set(valueCopy);\n const did = engine.doc_parse(parsePtr, vl);\n engine.dealloc(parsePtr, valueCopy.length);\n if (did >= 0 && onRootCb) {\n onRootCb({ type: 'root', index: rootIndex++, value: buildDocRoot(did) });\n }\n }\n\n // Scan remaining bytes with PathTracker\n if (remaining > 0 && (pathSubs.length > 0 || deltaSubs.length > 0)) {\n const nbp = (engine.stream_get_buffer_ptr(streamId) >>> 0);\n const nbl = engine.stream_get_buffer_len(streamId);\n if (nbl > 0) {\n const wb = new Uint8Array(engine.memory.buffer, nbp, nbl);\n ptScan(wb, 0, nbl);\n }\n }\n\n if (remaining === 0) break;\n }\n return FEED_STATUS[engine.stream_get_status(streamId)] || \"incomplete\";\n }\n\n return feedStatus;\n },\n\n getValue(): unknown | undefined {\n if (destroyed) throw new Error(\"EventParser already destroyed\");\n const status = engine.stream_get_status(streamId);\n if (status === 2) throw new SyntaxError(\"VectorJSON: Parse error in stream\");\n\n if (status === 0) {\n // incomplete — return the incrementally-built live document\n let value: unknown = ldRoot;\n\n // Handle pending values not yet committed to ldRoot\n if (ptInScalar && ldScalarAccum) {\n const partial = ldScalarAccum;\n const completed = partial.startsWith('t') ? 'true'\n : partial.startsWith('f') ? 'false'\n : partial.startsWith('n') ? 'null'\n : partial;\n try {\n const parsed = JSON.parse(completed);\n if (ldStack.length === 0) value = parsed;\n } catch { /* leave as-is */ }\n } else if (ldInStringValue && ldStack.length === 0) {\n value = ldStringAccum;\n }\n\n if (value === undefined) return undefined;\n return value;\n }\n\n // complete or end_early — do a final WASM parse for correctness\n const bufPtr = (engine.stream_get_buffer_ptr(streamId) >>> 0);\n const valueLen = engine.stream_get_value_len(streamId);\n new Uint8Array(engine.memory.buffer, bufPtr + valueLen, 64).fill(0x20);\n const docId = engine.doc_parse(bufPtr, valueLen);\n if (docId < 0) {\n const errorCode = engine.get_error_code();\n const msg = ERROR_MESSAGES[errorCode] || `Parse error (code ${errorCode})`;\n throw new SyntaxError(`VectorJSON: ${msg}`);\n }\n return buildDocRoot(docId);\n },\n\n getRemaining(): Uint8Array | null {\n if (destroyed) return null;\n const rPtr = (engine.stream_get_remaining_ptr(streamId) >>> 0);\n const rLen = engine.stream_get_remaining_len(streamId);\n if (rLen > 0) {\n const copy = new Uint8Array(rLen);\n copy.set(new Uint8Array(engine.memory.buffer, rPtr, rLen));\n return copy;\n }\n return null;\n },\n\n getStatus(): FeedStatus {\n if (destroyed) return \"error\";\n return FEED_STATUS[engine.stream_get_status(streamId)] || \"error\";\n },\n\n getRawBuffer(): ArrayBuffer | null {\n if (destroyed) return null;\n const bufPtr = engine.stream_get_buffer_ptr(streamId) >>> 0;\n const bufLen = engine.stream_get_buffer_len(streamId);\n if (bufLen === 0) return null;\n const copy = new ArrayBuffer(bufLen);\n new Uint8Array(copy).set(new Uint8Array(engine.memory.buffer, bufPtr, bufLen));\n return copy;\n },\n\n destroy(): void {\n if (!destroyed) {\n engine.stream_destroy(streamId);\n destroyed = true;\n }\n },\n };\n\n return self;\n },\n\n createParser(arg?: any): StreamingParser {\n // --- Argument parsing: detect legacy schema vs options object ---\n let schema: { safeParse: (v: unknown) => { success: boolean; data?: unknown } } | undefined;\n let pickPaths: PathSegment[][] | null = null;\n let source: ReadableStream<Uint8Array> | AsyncIterable<Uint8Array | string> | undefined;\n\n if (arg && typeof arg === 'object' && 'safeParse' in arg && !('pick' in arg) && !('source' in arg) && !('schema' in arg)) {\n // Legacy: createParser(zodSchema)\n schema = arg;\n } else if (arg && typeof arg === 'object' && ('pick' in arg || 'source' in arg || 'schema' in arg)) {\n // New: createParser({ pick, schema, source })\n schema = arg.schema;\n source = arg.source;\n if (arg.pick) pickPaths = arg.pick.map(compilePath);\n }\n const streamId = engine.stream_create();\n if (streamId < 0) {\n throw new Error(\"VectorJSON: Failed to create streaming parser (max 4 concurrent)\");\n }\n\n let destroyed = false;\n let cachedValue: unknown = UNCACHED;\n let cachedRemaining: Uint8Array | null | undefined; // undefined = not yet cached\n\n // --- Live document builder state (same approach as EventParser) ---\n let ldRoot: unknown = undefined;\n let ldStack: (Record<string, unknown> | unknown[])[] = [];\n let ldCurrentKey: string | null = null;\n let ldActiveKey: string | null = null;\n let ldStringAccum = '';\n let ldInStringValue = false;\n let ldScalarAccum = '';\n\n // Byte scanner state\n let scanInString = false;\n let scanEscapeNext = false;\n let scanDepth = 0;\n let scanContext: ('o' | 'a')[] = [];\n let scanExpectingKey = false;\n let scanAfterColon = false;\n let scanKeyAccum = '';\n let scanAccumulatingKey = false;\n let scanInScalar = false;\n\n // --- Pick state ---\n // spKeyStack tracks the current key at each depth for pick matching.\n // spSkipDepth >= 0 means we're inside a non-picked field and should skip building.\n let spKeyStack: (string | null)[] = [];\n let spSkipDepth = -1;\n\n /** Check if the current path (from spKeyStack + scanDepth) matches any pick path.\n * Returns true if current path is an ancestor, descendant, or exact match. */\n function isFieldPicked(): boolean {\n if (!pickPaths) return true;\n for (const pick of pickPaths) {\n // Compare each segment of the pick path against current path\n const currentDepth = scanDepth;\n const pickLen = pick.length;\n const compareLen = Math.min(currentDepth, pickLen);\n let matched = true;\n for (let i = 0; i < compareLen; i++) {\n const seg = pick[i];\n const key = spKeyStack[i];\n if (seg === '*') continue; // wildcard matches anything\n if (typeof seg === 'number') {\n // Index matching — not tracked in spKeyStack for pick (only object keys matter)\n continue;\n }\n if (key !== seg) { matched = false; break; }\n }\n if (matched) return true; // ancestor, descendant, or exact match\n }\n return false;\n }\n\n function spSetValue(value: unknown) {\n if (ldStack.length === 0) { ldRoot = value; return; }\n const parent = ldStack[ldStack.length - 1];\n if (Array.isArray(parent)) { parent.push(value); }\n else if (ldCurrentKey !== null) { parent[ldCurrentKey] = value; ldActiveKey = ldCurrentKey; ldCurrentKey = null; }\n }\n\n function spUpdateString(str: string) {\n if (ldStack.length === 0) { ldRoot = str; return; }\n const parent = ldStack[ldStack.length - 1];\n if (Array.isArray(parent)) {\n if (parent.length > 0) parent[parent.length - 1] = str;\n else parent.push(str);\n } else if (ldActiveKey !== null) { parent[ldActiveKey] = str; }\n }\n\n /** Scan new bytes to incrementally build the live JS document.\n * When pickPaths is set, fields not matching any pick path are skipped. */\n function spScan(buf: Uint8Array, from: number, to: number) {\n const picking = pickPaths !== null;\n for (let i = from; i < to; i++) {\n const c = buf[i];\n\n if (scanInScalar) {\n if (c === 0x2C || c === 0x7D || c === 0x5D || c === 0x20 || c === 0x0A || c === 0x0D || c === 0x09) {\n if (spSkipDepth < 0) {\n try { spSetValue(JSON.parse(ldScalarAccum)); } catch { spSetValue(null); }\n }\n ldScalarAccum = '';\n scanInScalar = false;\n i--; continue;\n }\n if (spSkipDepth < 0) ldScalarAccum += B2C[c];\n continue;\n }\n\n if (scanEscapeNext) {\n scanEscapeNext = false;\n if (ldInStringValue && spSkipDepth < 0) {\n let decoded: string;\n switch (c) {\n case 0x6E: decoded = '\\n'; break;\n case 0x72: decoded = '\\r'; break;\n case 0x74: decoded = '\\t'; break;\n case 0x22: decoded = '\"'; break;\n case 0x5C: decoded = '\\\\'; break;\n case 0x2F: decoded = '/'; break;\n case 0x62: decoded = '\\b'; break;\n case 0x66: decoded = '\\f'; break;\n default: decoded = B2C[c]; break;\n }\n ldStringAccum += decoded;\n }\n if (scanAccumulatingKey) scanKeyAccum += B2C[c];\n continue;\n }\n\n if (scanInString) {\n if (c === 0x5C) { scanEscapeNext = true; continue; }\n if (c === 0x22) {\n scanInString = false;\n if (scanAccumulatingKey) {\n scanAccumulatingKey = false;\n ldCurrentKey = scanKeyAccum;\n // Store key in spKeyStack for pick path matching\n if (picking && scanDepth > 0) {\n spKeyStack[scanDepth - 1] = scanKeyAccum;\n }\n scanKeyAccum = '';\n continue;\n }\n if (ldInStringValue && spSkipDepth < 0) {\n spUpdateString(ldStringAccum);\n ldStringAccum = '';\n ldInStringValue = false;\n }\n continue;\n }\n if (ldInStringValue && spSkipDepth < 0) ldStringAccum += B2C[c];\n if (scanAccumulatingKey) scanKeyAccum += B2C[c];\n continue;\n }\n\n switch (c) {\n case 0x7B: {\n scanContext[scanDepth] = 'o';\n if (picking) spKeyStack[scanDepth] = null;\n scanDepth++;\n scanExpectingKey = true;\n scanAfterColon = false;\n if (spSkipDepth < 0) {\n const obj: Record<string, unknown> = {};\n spSetValue(obj);\n ldStack.push(obj);\n }\n break;\n }\n case 0x5B: {\n scanContext[scanDepth] = 'a';\n if (picking) spKeyStack[scanDepth] = null;\n scanDepth++;\n scanExpectingKey = false;\n scanAfterColon = false;\n if (spSkipDepth < 0) {\n const arr: unknown[] = [];\n spSetValue(arr);\n ldStack.push(arr);\n }\n break;\n }\n case 0x7D: case 0x5D: {\n scanDepth--;\n if (spSkipDepth >= 0 && scanDepth <= spSkipDepth) {\n spSkipDepth = -1;\n } else if (spSkipDepth < 0) {\n ldStack.pop();\n }\n if (scanDepth > 0) {\n scanExpectingKey = scanContext[scanDepth - 1] === 'o';\n scanAfterColon = false;\n }\n break;\n }\n case 0x22: {\n scanInString = true;\n const isValue = scanAfterColon || scanDepth === 0 || (scanDepth > 0 && scanContext[scanDepth - 1] === 'a');\n if (scanExpectingKey) {\n scanAccumulatingKey = true;\n scanKeyAccum = '';\n } else if (isValue && spSkipDepth < 0) {\n ldStringAccum = '';\n ldInStringValue = true;\n spSetValue('');\n scanAfterColon = false;\n }\n break;\n }\n case 0x3A: {\n scanExpectingKey = false;\n scanAfterColon = true;\n // Check pick filter after key is stored\n if (picking && spSkipDepth < 0 && !isFieldPicked()) {\n spSkipDepth = scanDepth - 1;\n ldCurrentKey = null; // discard key since field is skipped\n break;\n }\n // Pre-set null for the pending key — overwritten when the real\n // value arrives. Ensures getValue() shows {\"key\": null} while\n // the value is still being streamed.\n if (spSkipDepth < 0 && ldCurrentKey !== null && ldStack.length > 0) {\n const parent = ldStack[ldStack.length - 1];\n if (!Array.isArray(parent)) {\n (parent as Record<string, unknown>)[ldCurrentKey] = null;\n ldActiveKey = ldCurrentKey;\n }\n }\n break;\n }\n case 0x2C: {\n if (picking && spSkipDepth >= 0 && scanDepth - 1 <= spSkipDepth) {\n spSkipDepth = -1;\n }\n if (scanDepth > 0 && scanContext[scanDepth - 1] === 'o') {\n scanExpectingKey = true;\n if (picking) spKeyStack[scanDepth - 1] = null;\n }\n scanAfterColon = false;\n break;\n }\n default: {\n if (spSkipDepth >= 0) break; // skip scalars inside non-picked fields\n const isValuePos = scanAfterColon || scanDepth === 0 || (scanDepth > 0 && scanContext[scanDepth - 1] === 'a');\n if (isValuePos) {\n if (c >= 0x30 && c <= 0x39 || c === 0x2D || c === 0x74 || c === 0x66 || c === 0x6E) {\n let j = i + 1;\n while (j < to) {\n const sc = buf[j];\n if (sc === 0x2C || sc === 0x7D || sc === 0x5D || sc === 0x20 || sc === 0x0A || sc === 0x0D || sc === 0x09) break;\n j++;\n }\n if (j < to) {\n const scalarStr = utf8Decoder.decode(buf.slice(i, j));\n try { spSetValue(JSON.parse(scalarStr)); } catch { spSetValue(null); }\n i = j - 1;\n } else {\n scanInScalar = true;\n ldScalarAccum = utf8Decoder.decode(buf.slice(i, to));\n i = to;\n }\n scanAfterColon = false;\n }\n }\n break;\n }\n }\n }\n\n // End-of-chunk: flush accumulated string to parent (batched update)\n if (ldInStringValue && ldStringAccum && spSkipDepth < 0) {\n spUpdateString(ldStringAccum);\n }\n\n // End-of-chunk: if we're still accumulating a scalar and stream says complete,\n // finalize it now (root-level scalars like \"42\" end at end-of-buffer)\n if (scanInScalar) {\n const status = engine.stream_get_status(streamId);\n if (status === 1 || status === 3) { // complete or end_early\n // Autocomplete partial keywords (e.g., \"tr\" → \"true\")\n const s = ldScalarAccum;\n const completed = s.startsWith('t') ? 'true'\n : s.startsWith('f') ? 'false'\n : s.startsWith('n') ? 'null' : s;\n try { spSetValue(JSON.parse(completed)); } catch { spSetValue(null); }\n ldScalarAccum = '';\n scanInScalar = false;\n }\n }\n }\n\n const ensureRemaining = () => {\n if (cachedRemaining !== undefined) return;\n const rPtr = (engine.stream_get_remaining_ptr(streamId) >>> 0);\n const rLen = engine.stream_get_remaining_len(streamId);\n if (rLen > 0) {\n cachedRemaining = new Uint8Array(rLen);\n cachedRemaining.set(new Uint8Array(engine.memory.buffer, rPtr, rLen));\n } else {\n cachedRemaining = null;\n }\n };\n\n let prevLen = 0;\n\n return {\n feed(chunk: Uint8Array | string): FeedStatus {\n if (destroyed) throw new Error(\"Parser already destroyed\");\n const chunkLen = typeof chunk === \"string\" ? chunk.length : chunk.byteLength;\n if (chunkLen === 0) return FEED_STATUS[engine.stream_get_status(streamId)]!;\n const { ptr, len } = writeToWasm(chunk, feedBuf, 0, 4096);\n const rawStatus = engine.stream_feed(streamId, ptr, len);\n // Scan new bytes for live document building\n const newLen = engine.stream_get_buffer_len(streamId);\n if (newLen > prevLen) {\n const bufPtr = (engine.stream_get_buffer_ptr(streamId) >>> 0);\n // For end_early/complete: only scan up to the value boundary, not trailing data\n const scanEnd = (rawStatus === 1 || rawStatus === 3)\n ? Math.min(newLen, engine.stream_get_value_len(streamId))\n : newLen;\n if (scanEnd > prevLen) {\n const wasmBuf = new Uint8Array(engine.memory.buffer, bufPtr, scanEnd);\n spScan(wasmBuf, prevLen, scanEnd);\n }\n prevLen = newLen;\n }\n return FEED_STATUS[rawStatus] || \"error\";\n },\n\n getValue(): unknown | undefined {\n if (destroyed) throw new Error(\"Parser already destroyed\");\n if (cachedValue !== UNCACHED) return cachedValue;\n\n const status = engine.stream_get_status(streamId);\n if (status === 2) {\n throw new SyntaxError(\"VectorJSON: Parse error in stream\");\n }\n\n if (status === 0) {\n // incomplete — return the incrementally-built live document\n // The returned object IS the live object — it grows as more data arrives.\n // Callers get a reference that automatically reflects future feed() calls.\n let value: unknown = ldRoot;\n\n // Handle pending partial values that haven't been committed to ldRoot yet:\n if (scanInScalar && ldScalarAccum) {\n // Pending scalar: try to autocomplete (e.g., \"tr\" → true)\n const partial = ldScalarAccum;\n const completed = partial.startsWith('t') ? 'true'\n : partial.startsWith('f') ? 'false'\n : partial.startsWith('n') ? 'null'\n : partial;\n try {\n const parsed = JSON.parse(completed);\n if (ldStack.length === 0) value = parsed;\n } catch { /* partial number like \"1.\" — leave as-is */ }\n } else if (ldInStringValue && ldStack.length === 0) {\n // Root-level string still being accumulated\n value = ldStringAccum;\n }\n\n if (value === undefined) return undefined;\n // Incomplete: return partial value without schema gating.\n // User checks getStatus() to know it's not final.\n return value;\n }\n\n // complete or end_early — finalize any pending scalar\n if (scanInScalar && ldScalarAccum) {\n try { spSetValue(JSON.parse(ldScalarAccum)); } catch { spSetValue(null); }\n ldScalarAccum = '';\n scanInScalar = false;\n }\n ensureRemaining();\n\n let value: unknown = ldRoot;\n if (schema) {\n const result = schema.safeParse(value);\n if (!result.success) return (cachedValue = undefined) as undefined;\n value = result.data;\n }\n return (cachedValue = value);\n },\n\n getRemaining(): Uint8Array | null {\n if (destroyed) return null;\n ensureRemaining();\n return cachedRemaining!;\n },\n\n getStatus(): FeedStatus {\n if (destroyed) return \"error\";\n const status = engine.stream_get_status(streamId);\n return FEED_STATUS[status] || \"error\";\n },\n\n getRawBuffer(): ArrayBuffer | null {\n if (destroyed) return null;\n const bufPtr = engine.stream_get_buffer_ptr(streamId) >>> 0;\n const bufLen = engine.stream_get_buffer_len(streamId);\n if (bufLen === 0) return null;\n const copy = new ArrayBuffer(bufLen);\n new Uint8Array(copy).set(new Uint8Array(engine.memory.buffer, bufPtr, bufLen));\n return copy;\n },\n\n destroy(): void {\n if (!destroyed) {\n engine.stream_destroy(streamId);\n destroyed = true;\n cachedValue = UNCACHED;\n }\n },\n\n [Symbol.asyncIterator](): AsyncIterableIterator<unknown | undefined> {\n if (!source) throw new Error(\"No source provided — use feed() for push-based parsing\");\n const self = this;\n const reader = isReadableStream(source) ? source.getReader() : null;\n const iter = reader ? null : (source as AsyncIterable<any>)[Symbol.asyncIterator]();\n let finished = false;\n\n return {\n async next() {\n if (finished) {\n self.destroy();\n return { done: true as const, value: undefined };\n }\n\n const result = reader\n ? await reader.read()\n : await iter!.next();\n\n if (result.done || !result.value) {\n finished = true;\n self.destroy();\n return { done: true as const, value: undefined };\n }\n\n const status = self.feed(result.value);\n const partial = self.getValue();\n\n if (status === \"complete\" || status === \"end_early\") {\n finished = true;\n return { done: false, value: partial };\n }\n if (status === \"error\") {\n finished = true;\n self.destroy();\n throw new SyntaxError(\"VectorJSON: Parse error in stream\");\n }\n\n return { done: false, value: partial };\n },\n async return() {\n finished = true;\n self.destroy();\n if (reader) reader.cancel();\n return { done: true as const, value: undefined };\n },\n [Symbol.asyncIterator]() { return this; },\n };\n },\n };\n },\n };\n\n return _instance;\n}\n\n// --- Top-level await: auto-initialize with embedded WASM ---\nconst _vj = await init();\n\n/** Parse a JSON string or Uint8Array. Synchronous — no init needed. */\nexport const parse = _vj.parse;\n\n/** Parse partial/incomplete JSON. Compatible with Vercel AI SDK's parsePartialJson. */\nexport const parsePartialJson = _vj.parsePartialJson;\n\n/** Deep-compare two values for structural equality. WASM-accelerated for VJ proxies. */\nexport const deepCompare = _vj.deepCompare;\n\n/** Create a streaming parser for incremental JSON parsing. */\nexport const createParser = _vj.createParser;\n\n/** Create an event-driven streaming parser with path subscriptions. */\nexport const createEventParser = _vj.createEventParser;\n\n/** Eagerly materialize a lazy proxy into plain JS objects. */\nexport const materialize = _vj.materialize;\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": "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",
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "39309DFE30EA80D464756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|