mtranserver 4.0.19 → 4.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +61 -13
- package/dist/index.js.map +3 -3
- package/dist/main.js +71 -23
- package/dist/main.js.map +5 -5
- package/package.json +9 -8
package/dist/index.js.map
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\nfunction loadBergamot(Module) {\n var BERGAMOT_VERSION_FULL = \"v0.6.0+1de4a085\";\n null;\n\n Module = typeof Module != \"undefined\" ? Module : {};\n\n var moduleOverrides = Object.assign({}, Module);\n\n var arguments_ = [];\n\n var thisProgram = \"./this.program\";\n\n var quit_ = (status, toThrow) => {\n throw toThrow;\n };\n\n var ENVIRONMENT_IS_WEB = typeof window == \"object\";\n\n var ENVIRONMENT_IS_WORKER = typeof importScripts == \"function\";\n\n var ENVIRONMENT_IS_NODE =\n typeof process == \"object\" &&\n typeof process.versions == \"object\" &&\n typeof process.versions.node == \"string\";\n\n var scriptDirectory = \"\";\n\n function locateFile(path) {\n if (Module.locateFile) {\n return Module.locateFile(path, scriptDirectory);\n }\n return scriptDirectory + path;\n }\n\n var read_, readAsync, readBinary, setWindowTitle;\n\n if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n if (ENVIRONMENT_IS_WORKER) {\n scriptDirectory = self.location.href;\n } else if (typeof document != \"undefined\" && document.currentScript) {\n scriptDirectory = document.currentScript.src;\n }\n if (scriptDirectory.indexOf(\"blob:\") !== 0) {\n scriptDirectory = scriptDirectory.substr(\n 0,\n scriptDirectory.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1\n );\n } else {\n scriptDirectory = \"\";\n }\n {\n read_ = url => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.send(null);\n return xhr.responseText;\n };\n if (ENVIRONMENT_IS_WORKER) {\n readBinary = url => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.responseType = \"arraybuffer\";\n xhr.send(null);\n return new Uint8Array(xhr.response);\n };\n }\n readAsync = (url, onload, onerror) => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n xhr.responseType = \"arraybuffer\";\n xhr.onload = () => {\n if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) {\n onload(xhr.response);\n return;\n }\n onerror();\n };\n xhr.onerror = onerror;\n xhr.send(null);\n };\n }\n setWindowTitle = title => (document.title = title);\n } else {\n }\n\n var out = Module.print || console.log.bind(console);\n\n var err = Module.printErr || console.warn.bind(console);\n\n Object.assign(Module, moduleOverrides);\n\n moduleOverrides = null;\n\n if (Module.arguments) {\n arguments_ = Module.arguments;\n }\n\n if (Module.thisProgram) {\n thisProgram = Module.thisProgram;\n }\n\n if (Module.quit) {\n quit_ = Module.quit;\n }\n\n var tempRet0 = 0;\n\n var setTempRet0 = value => {\n tempRet0 = value;\n };\n\n var wasmBinary;\n\n if (Module.wasmBinary) {\n wasmBinary = Module.wasmBinary;\n }\n\n var noExitRuntime = Module.noExitRuntime || true;\n\n if (typeof WebAssembly != \"object\") {\n abort(\"no native wasm support detected\");\n }\n\n function setValue(ptr, value, type = \"i8\", noSafe) {\n if (type.charAt(type.length - 1) === \"*\") {\n type = \"i32\";\n }\n switch (type) {\n case \"i1\":\n HEAP8[ptr >> 0] = value;\n break;\n\n case \"i8\":\n HEAP8[ptr >> 0] = value;\n break;\n\n case \"i16\":\n HEAP16[ptr >> 1] = value;\n break;\n\n case \"i32\":\n HEAP32[ptr >> 2] = value;\n break;\n\n case \"i64\":\n ((tempI64 = [\n value >>> 0,\n ((tempDouble = value),\n +Math.abs(tempDouble) >= 1\n ? tempDouble > 0\n ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) |\n 0) >>>\n 0\n : ~~+Math.ceil(\n (tempDouble - +(~~tempDouble >>> 0)) / 4294967296\n ) >>> 0\n : 0),\n ]),\n (HEAP32[ptr >> 2] = tempI64[0]),\n (HEAP32[(ptr + 4) >> 2] = tempI64[1]));\n break;\n\n case \"float\":\n HEAPF32[ptr >> 2] = value;\n break;\n\n case \"double\":\n HEAPF64[ptr >> 3] = value;\n break;\n\n default:\n abort(\"invalid type for setValue: \" + type);\n }\n }\n\n var wasmMemory;\n\n var ABORT = false;\n\n var EXITSTATUS;\n\n function assert(condition, text) {\n if (!condition) {\n abort(text);\n }\n }\n\n var UTF8Decoder =\n typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf8\") : undefined;\n\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) {\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx)) {\n ++endPtr;\n }\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n }\n var str = \"\";\n while (idx < endPtr) {\n var u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n var u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) == 192) {\n str += String.fromCharCode(((u0 & 31) << 6) | u1);\n continue;\n }\n var u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) == 224) {\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\n } else {\n u0 =\n ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63);\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n var ch = u0 - 65536;\n str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));\n }\n }\n\n return str;\n }\n\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : \"\";\n }\n\n function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {\n if (!(maxBytesToWrite > 0)) {\n return 0;\n }\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) {\n var u1 = str.charCodeAt(++i);\n u = (65536 + ((u & 1023) << 10)) | (u1 & 1023);\n }\n if (u <= 127) {\n if (outIdx >= endIdx) {\n break;\n }\n heap[outIdx++] = u;\n } else if (u <= 2047) {\n if (outIdx + 1 >= endIdx) {\n break;\n }\n heap[outIdx++] = 192 | (u >> 6);\n heap[outIdx++] = 128 | (u & 63);\n } else if (u <= 65535) {\n if (outIdx + 2 >= endIdx) {\n break;\n }\n heap[outIdx++] = 224 | (u >> 12);\n heap[outIdx++] = 128 | ((u >> 6) & 63);\n heap[outIdx++] = 128 | (u & 63);\n } else {\n if (outIdx + 3 >= endIdx) {\n break;\n }\n heap[outIdx++] = 240 | (u >> 18);\n heap[outIdx++] = 128 | ((u >> 12) & 63);\n heap[outIdx++] = 128 | ((u >> 6) & 63);\n heap[outIdx++] = 128 | (u & 63);\n }\n }\n heap[outIdx] = 0;\n return outIdx - startIdx;\n }\n\n function stringToUTF8(str, outPtr, maxBytesToWrite) {\n return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n }\n\n function lengthBytesUTF8(str) {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) {\n u = (65536 + ((u & 1023) << 10)) | (str.charCodeAt(++i) & 1023);\n }\n if (u <= 127) {\n ++len;\n } else if (u <= 2047) {\n len += 2;\n } else if (u <= 65535) {\n len += 3;\n } else {\n len += 4;\n }\n }\n return len;\n }\n\n var UTF16Decoder =\n typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf-16le\") : undefined;\n\n function UTF16ToString(ptr, maxBytesToRead) {\n var endPtr = ptr;\n var idx = endPtr >> 1;\n var maxIdx = idx + maxBytesToRead / 2;\n while (!(idx >= maxIdx) && HEAPU16[idx]) {\n ++idx;\n }\n endPtr = idx << 1;\n if (endPtr - ptr > 32 && UTF16Decoder) {\n return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));\n }\n var str = \"\";\n for (var i = 0; !(i >= maxBytesToRead / 2); ++i) {\n var codeUnit = HEAP16[(ptr + i * 2) >> 1];\n if (codeUnit == 0) {\n break;\n }\n str += String.fromCharCode(codeUnit);\n }\n return str;\n }\n\n function stringToUTF16(str, outPtr, maxBytesToWrite) {\n if (maxBytesToWrite === undefined) {\n maxBytesToWrite = 2147483647;\n }\n if (maxBytesToWrite < 2) {\n return 0;\n }\n maxBytesToWrite -= 2;\n var startPtr = outPtr;\n var numCharsToWrite =\n maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;\n for (var i = 0; i < numCharsToWrite; ++i) {\n var codeUnit = str.charCodeAt(i);\n HEAP16[outPtr >> 1] = codeUnit;\n outPtr += 2;\n }\n HEAP16[outPtr >> 1] = 0;\n return outPtr - startPtr;\n }\n\n function lengthBytesUTF16(str) {\n return str.length * 2;\n }\n\n function UTF32ToString(ptr, maxBytesToRead) {\n var i = 0;\n var str = \"\";\n while (!(i >= maxBytesToRead / 4)) {\n var utf32 = HEAP32[(ptr + i * 4) >> 2];\n if (utf32 == 0) {\n break;\n }\n ++i;\n if (utf32 >= 65536) {\n var ch = utf32 - 65536;\n str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));\n } else {\n str += String.fromCharCode(utf32);\n }\n }\n return str;\n }\n\n function stringToUTF32(str, outPtr, maxBytesToWrite) {\n if (maxBytesToWrite === undefined) {\n maxBytesToWrite = 2147483647;\n }\n if (maxBytesToWrite < 4) {\n return 0;\n }\n var startPtr = outPtr;\n var endPtr = startPtr + maxBytesToWrite - 4;\n for (var i = 0; i < str.length; ++i) {\n var codeUnit = str.charCodeAt(i);\n if (codeUnit >= 55296 && codeUnit <= 57343) {\n var trailSurrogate = str.charCodeAt(++i);\n codeUnit =\n (65536 + ((codeUnit & 1023) << 10)) | (trailSurrogate & 1023);\n }\n HEAP32[outPtr >> 2] = codeUnit;\n outPtr += 4;\n if (outPtr + 4 > endPtr) {\n break;\n }\n }\n HEAP32[outPtr >> 2] = 0;\n return outPtr - startPtr;\n }\n\n function lengthBytesUTF32(str) {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var codeUnit = str.charCodeAt(i);\n if (codeUnit >= 55296 && codeUnit <= 57343) {\n ++i;\n }\n len += 4;\n }\n return len;\n }\n\n function allocateUTF8(str) {\n var size = lengthBytesUTF8(str) + 1;\n var ret = _malloc(size);\n if (ret) {\n stringToUTF8Array(str, HEAP8, ret, size);\n }\n return ret;\n }\n\n function writeArrayToMemory(array, buffer) {\n HEAP8.set(array, buffer);\n }\n\n function writeAsciiToMemory(str, buffer, dontAddNull) {\n for (var i = 0; i < str.length; ++i) {\n HEAP8[buffer++ >> 0] = str.charCodeAt(i);\n }\n if (!dontAddNull) {\n HEAP8[buffer >> 0] = 0;\n }\n }\n\n var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n\n function updateGlobalBufferAndViews(buf) {\n const mb = (buf.byteLength / 1_000_000).toFixed();\n Module.print(`Growing wasm buffer to ${mb}MB (${buf.byteLength} bytes).`);\n\n buffer = buf;\n Module.HEAP8 = HEAP8 = new Int8Array(buf);\n Module.HEAP16 = HEAP16 = new Int16Array(buf);\n Module.HEAP32 = HEAP32 = new Int32Array(buf);\n Module.HEAPU8 = HEAPU8 = new Uint8Array(buf);\n Module.HEAPU16 = HEAPU16 = new Uint16Array(buf);\n Module.HEAPU32 = HEAPU32 = new Uint32Array(buf);\n Module.HEAPF32 = HEAPF32 = new Float32Array(buf);\n Module.HEAPF64 = HEAPF64 = new Float64Array(buf);\n }\n\n var INITIAL_MEMORY = Module.INITIAL_MEMORY || 16777216;\n\n if (Module.wasmMemory) {\n wasmMemory = Module.wasmMemory;\n } else {\n wasmMemory = new WebAssembly.Memory({\n initial: INITIAL_MEMORY / 65536,\n maximum: 2147483648 / 65536,\n });\n }\n\n if (wasmMemory) {\n buffer = wasmMemory.buffer;\n }\n\n INITIAL_MEMORY = buffer.byteLength;\n\n updateGlobalBufferAndViews(buffer);\n\n var wasmTable;\n\n var __ATPRERUN__ = [];\n\n var __ATINIT__ = [];\n\n var __ATPOSTRUN__ = [];\n\n var runtimeInitialized = false;\n\n function keepRuntimeAlive() {\n return noExitRuntime;\n }\n\n function preRun() {\n if (Module.preRun) {\n if (typeof Module.preRun == \"function\") {\n Module.preRun = [Module.preRun];\n }\n while (Module.preRun.length) {\n addOnPreRun(Module.preRun.shift());\n }\n }\n callRuntimeCallbacks(__ATPRERUN__);\n }\n\n function initRuntime() {\n runtimeInitialized = true;\n callRuntimeCallbacks(__ATINIT__);\n }\n\n function postRun() {\n if (Module.postRun) {\n if (typeof Module.postRun == \"function\") {\n Module.postRun = [Module.postRun];\n }\n while (Module.postRun.length) {\n addOnPostRun(Module.postRun.shift());\n }\n }\n callRuntimeCallbacks(__ATPOSTRUN__);\n }\n\n function addOnPreRun(cb) {\n __ATPRERUN__.unshift(cb);\n }\n\n function addOnInit(cb) {\n __ATINIT__.unshift(cb);\n }\n\n function addOnPostRun(cb) {\n __ATPOSTRUN__.unshift(cb);\n }\n\n var runDependencies = 0;\n\n var runDependencyWatcher = null;\n\n var dependenciesFulfilled = null;\n\n function addRunDependency(id) {\n runDependencies++;\n if (Module.monitorRunDependencies) {\n Module.monitorRunDependencies(runDependencies);\n }\n }\n\n function removeRunDependency(id) {\n runDependencies--;\n if (Module.monitorRunDependencies) {\n Module.monitorRunDependencies(runDependencies);\n }\n if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n }\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback();\n }\n }\n }\n\n Module.preloadedImages = {};\n\n Module.preloadedAudios = {};\n\n function abort(what) {\n {\n if (Module.onAbort) {\n Module.onAbort(what);\n }\n }\n what = \"Aborted(\" + what + \")\";\n err(what);\n ABORT = true;\n EXITSTATUS = 1;\n what += \". Build with -s ASSERTIONS=1 for more info.\";\n var e = new WebAssembly.RuntimeError(what);\n throw e;\n }\n\n var dataURIPrefix = \"data:application/octet-stream;base64,\";\n\n function isDataURI(filename) {\n return filename.startsWith(dataURIPrefix);\n }\n\n var wasmBinaryFile;\n\n wasmBinaryFile = \"bergamot-translator.wasm\";\n\n if (!isDataURI(wasmBinaryFile)) {\n wasmBinaryFile = locateFile(wasmBinaryFile);\n }\n\n function getBinary(file) {\n try {\n if (file == wasmBinaryFile && wasmBinary) {\n return new Uint8Array(wasmBinary);\n }\n if (readBinary) {\n return readBinary(file);\n }\n throw \"both async and sync fetching of the wasm failed\";\n } catch (err) {\n abort(err);\n }\n }\n\n function getBinaryPromise() {\n if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {\n if (typeof fetch == \"function\") {\n return fetch(wasmBinaryFile, {\n credentials: \"same-origin\",\n })\n .then(function (response) {\n if (!response.ok) {\n throw (\n \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\"\n );\n }\n return response.arrayBuffer();\n })\n .catch(function () {\n return getBinary(wasmBinaryFile);\n });\n }\n }\n return Promise.resolve().then(function () {\n return getBinary(wasmBinaryFile);\n });\n }\n\n function createWasm() {\n var info = {\n env: asmLibraryArg,\n wasm_gemm: createWasmGemm(),\n wasi_snapshot_preview1: asmLibraryArg,\n };\n function receiveInstance(instance, module) {\n var exports = instance.exports;\n Module.asm = exports;\n wasmTable = Module.asm.__indirect_function_table;\n addOnInit(Module.asm.__wasm_call_ctors);\n exportAsmFunctions(exports);\n removeRunDependency(\"wasm-instantiate\");\n }\n addRunDependency(\"wasm-instantiate\");\n function receiveInstantiationResult(result) {\n receiveInstance(result.instance);\n }\n function instantiateArrayBuffer(receiver) {\n // This function has been patched from the original version.\n // See Bug 1988289.\n return getBinaryPromise()\n .then(binary => {\n const module = new WebAssembly.Module(binary);\n const instance = new WebAssembly.Instance(module, info);\n return { module, instance };\n })\n .then(function (instance) {\n return instance;\n })\n .then(receiver, function (reason) {\n err(\"failed to asynchronously prepare wasm: \" + reason);\n abort(reason);\n });\n }\n function instantiateAsync() {\n if (\n !wasmBinary &&\n typeof WebAssembly.instantiateStreaming == \"function\" &&\n !isDataURI(wasmBinaryFile) &&\n typeof fetch == \"function\"\n ) {\n return fetch(wasmBinaryFile, {\n credentials: \"same-origin\",\n }).then(function (response) {\n var result = WebAssembly.instantiateStreaming(response, info);\n return result.then(receiveInstantiationResult, function (reason) {\n err(\"wasm streaming compile failed: \" + reason);\n err(\"falling back to ArrayBuffer instantiation\");\n return instantiateArrayBuffer(receiveInstantiationResult);\n });\n });\n }\n return instantiateArrayBuffer(receiveInstantiationResult);\n }\n if (Module.instantiateWasm) {\n try {\n var exports = Module.instantiateWasm(info, receiveInstance);\n return exports;\n } catch (e) {\n err(\"Module.instantiateWasm callback failed with error: \" + e);\n return false;\n }\n }\n instantiateAsync();\n return {};\n }\n\n var tempDouble;\n\n var tempI64;\n\n var ASM_CONSTS = {\n 1427332($0, $1, $2, $3, $4) {\n if (!Module.getOrCreateSentenceSegmenter) {\n Module.getOrCreateSentenceSegmenter = (function () {\n let segmenters = new Map();\n return function (lang) {\n let segmenter = segmenters.get(lang);\n if (!segmenter) {\n segmenter = new Intl.Segmenter(lang, {\n granularity: \"sentence\",\n });\n segmenters.set(lang, segmenter);\n }\n return segmenter;\n };\n })();\n }\n const inputUTF16 = UTF8ToString($0);\n const lang = UTF8ToString($1);\n const segmenter = Module.getOrCreateSentenceSegmenter(lang);\n const sentencesUTF16 = Array.from(segmenter.segment(inputUTF16));\n const sentenceCount = sentencesUTF16.length;\n const bytesPerInt = 4;\n const startsPtr = _malloc(sentenceCount * bytesPerInt);\n const endsPtr = _malloc(sentenceCount * bytesPerInt);\n if (!startsPtr || !endsPtr) {\n throw new Error(\"Failed to allocate WASM memory for segmentation.\");\n }\n let sentenceEndUTF8 = 0;\n sentencesUTF16.forEach(({ segment: sentenceUTF16 }, index) => {\n const sentenceStartUTF8 = sentenceEndUTF8;\n sentenceEndUTF8 += lengthBytesUTF8(sentenceUTF16);\n setValue(startsPtr + index * bytesPerInt, sentenceStartUTF8, \"i32\");\n setValue(endsPtr + index * bytesPerInt, sentenceEndUTF8, \"i32\");\n });\n setValue($2, sentenceCount, \"i32\");\n setValue($3, startsPtr, \"i32\");\n setValue($4, endsPtr, \"i32\");\n },\n };\n\n function callRuntimeCallbacks(callbacks) {\n while (callbacks.length) {\n var callback = callbacks.shift();\n if (typeof callback == \"function\") {\n callback(Module);\n continue;\n }\n var func = callback.func;\n if (typeof func == \"number\") {\n if (callback.arg === undefined) {\n getWasmTableEntry(func)();\n } else {\n getWasmTableEntry(func)(callback.arg);\n }\n } else {\n func(callback.arg === undefined ? null : callback.arg);\n }\n }\n }\n\n function asmjsMangle(x) {\n var unmangledSymbols = [\"stackAlloc\", \"stackSave\", \"stackRestore\"];\n return x.indexOf(\"dynCall_\") == 0 || unmangledSymbols.includes(x)\n ? x\n : \"_\" + x;\n }\n\n var _malloc, _free, stackSave, stackRestore, stackAlloc;\n\n function exportAsmFunctions(asm) {\n for (var __exportedFunc in asm) {\n var jsname = asmjsMangle(__exportedFunc);\n Module[jsname] = asm[__exportedFunc];\n\n if (jsname === '_malloc') _malloc = asm[__exportedFunc];\n else if (jsname === '_free') _free = asm[__exportedFunc];\n else if (jsname === 'stackSave') stackSave = asm[__exportedFunc];\n else if (jsname === 'stackRestore') stackRestore = asm[__exportedFunc];\n else if (jsname === 'stackAlloc') stackAlloc = asm[__exportedFunc];\n }\n }\n\n var wasmTableMirror = [];\n\n function getWasmTableEntry(funcPtr) {\n var func = wasmTableMirror[funcPtr];\n if (!func) {\n if (funcPtr >= wasmTableMirror.length) {\n wasmTableMirror.length = funcPtr + 1;\n }\n wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);\n }\n return func;\n }\n\n function ___assert_fail(condition, filename, line, func) {\n abort(\n \"Assertion failed: \" +\n UTF8ToString(condition) +\n \", at: \" +\n [\n filename ? UTF8ToString(filename) : \"unknown filename\",\n line,\n func ? UTF8ToString(func) : \"unknown function\",\n ]\n );\n }\n\n function ___cxa_allocate_exception(size) {\n return _malloc(size + 16) + 16;\n }\n\n var exceptionCaught = [];\n\n var exceptionLast = 0;\n\n var uncaughtExceptionCount = 0;\n\n function ___cxa_rethrow() {\n var catchInfo = exceptionCaught.pop();\n if (!catchInfo) {\n abort(\"no exception to throw\");\n }\n var info = catchInfo.get_exception_info();\n var ptr = catchInfo.get_base_ptr();\n if (!info.get_rethrown()) {\n exceptionCaught.push(catchInfo);\n info.set_rethrown(true);\n info.set_caught(false);\n uncaughtExceptionCount++;\n } else {\n catchInfo.free();\n }\n exceptionLast = ptr;\n throw ptr;\n }\n\n function ExceptionInfo(excPtr) {\n this.excPtr = excPtr;\n this.ptr = excPtr - 16;\n this.set_type = function (type) {\n HEAP32[(this.ptr + 4) >> 2] = type;\n };\n this.get_type = function () {\n return HEAP32[(this.ptr + 4) >> 2];\n };\n this.set_destructor = function (destructor) {\n HEAP32[(this.ptr + 8) >> 2] = destructor;\n };\n this.get_destructor = function () {\n return HEAP32[(this.ptr + 8) >> 2];\n };\n this.set_refcount = function (refcount) {\n HEAP32[this.ptr >> 2] = refcount;\n };\n this.set_caught = function (caught) {\n caught = caught ? 1 : 0;\n HEAP8[(this.ptr + 12) >> 0] = caught;\n };\n this.get_caught = function () {\n return HEAP8[(this.ptr + 12) >> 0] != 0;\n };\n this.set_rethrown = function (rethrown) {\n rethrown = rethrown ? 1 : 0;\n HEAP8[(this.ptr + 13) >> 0] = rethrown;\n };\n this.get_rethrown = function () {\n return HEAP8[(this.ptr + 13) >> 0] != 0;\n };\n this.init = function (type, destructor) {\n this.set_type(type);\n this.set_destructor(destructor);\n this.set_refcount(0);\n this.set_caught(false);\n this.set_rethrown(false);\n };\n this.add_ref = function () {\n var value = HEAP32[this.ptr >> 2];\n HEAP32[this.ptr >> 2] = value + 1;\n };\n this.release_ref = function () {\n var prev = HEAP32[this.ptr >> 2];\n HEAP32[this.ptr >> 2] = prev - 1;\n return prev === 1;\n };\n }\n\n function ___cxa_throw(ptr, type, destructor) {\n var info = new ExceptionInfo(ptr);\n info.init(type, destructor);\n exceptionLast = ptr;\n uncaughtExceptionCount++;\n throw ptr;\n }\n\n var SYSCALLS = {\n buffers: [null, [], []],\n printChar(stream, curr) {\n var buffer = SYSCALLS.buffers[stream];\n if (curr === 0 || curr === 10) {\n (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));\n buffer.length = 0;\n } else {\n buffer.push(curr);\n }\n },\n varargs: undefined,\n get() {\n SYSCALLS.varargs += 4;\n var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2];\n return ret;\n },\n getStr(ptr) {\n var ret = UTF8ToString(ptr);\n return ret;\n },\n get64(low, high) {\n return low;\n },\n };\n\n function ___syscall_faccessat(dirfd, path, amode, flags) {\n path = SYSCALLS.getStr(path);\n path = SYSCALLS.calculateAt(dirfd, path);\n return SYSCALLS.doAccess(path, amode);\n }\n\n function ___syscall_fcntl64(fd, cmd, varargs) {\n SYSCALLS.varargs = varargs;\n return 0;\n }\n\n function ___syscall_fstat64(fd, buf) { }\n\n function ___syscall_getcwd(buf, size) { }\n\n function ___syscall_ioctl(fd, op, varargs) {\n SYSCALLS.varargs = varargs;\n return 0;\n }\n\n function ___syscall_lstat64(path, buf) { }\n\n function ___syscall_newfstatat(dirfd, path, buf, flags) { }\n\n function ___syscall_openat(dirfd, path, flags, varargs) {\n SYSCALLS.varargs = varargs;\n }\n\n function ___syscall_renameat(olddirfd, oldpath, newdirfd, newpath) { }\n\n function ___syscall_rmdir(path) { }\n\n function ___syscall_stat64(path, buf) { }\n\n function ___syscall_unlinkat(dirfd, path, flags) { }\n\n var structRegistrations = {};\n\n function runDestructors(destructors) {\n while (destructors.length) {\n var ptr = destructors.pop();\n var del = destructors.pop();\n del(ptr);\n }\n }\n\n function simpleReadValueFromPointer(pointer) {\n return this.fromWireType(HEAPU32[pointer >> 2]);\n }\n\n var awaitingDependencies = {};\n\n var registeredTypes = {};\n\n var typeDependencies = {};\n\n var char_0 = 48;\n\n var char_9 = 57;\n\n function makeLegalFunctionName(name) {\n if (undefined === name) {\n return \"_unknown\";\n }\n name = name.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var f = name.charCodeAt(0);\n if (f >= char_0 && f <= char_9) {\n return \"_\" + name;\n }\n return name;\n }\n\n function createNamedFunction(name, body) {\n name = makeLegalFunctionName(name);\n return function () {\n null;\n return body.apply(this, arguments);\n };\n }\n\n function extendError(baseErrorType, errorName) {\n var errorClass = createNamedFunction(errorName, function (message) {\n this.name = errorName;\n this.message = message;\n var stack = new Error(message).stack;\n if (stack !== undefined) {\n this.stack =\n this.toString() + \"\\n\" + stack.replace(/^Error(:[^\\n]*)?\\n/, \"\");\n }\n });\n errorClass.prototype = Object.create(baseErrorType.prototype);\n errorClass.prototype.constructor = errorClass;\n errorClass.prototype.toString = function () {\n if (this.message === undefined) {\n return this.name;\n }\n return this.name + \": \" + this.message;\n };\n return errorClass;\n }\n\n var InternalError = undefined;\n\n function throwInternalError(message) {\n throw new InternalError(message);\n }\n\n function whenDependentTypesAreResolved(\n myTypes,\n dependentTypes,\n getTypeConverters\n ) {\n myTypes.forEach(function (type) {\n typeDependencies[type] = dependentTypes;\n });\n function onComplete(typeConverters) {\n var myTypeConverters = getTypeConverters(typeConverters);\n if (myTypeConverters.length !== myTypes.length) {\n throwInternalError(\"Mismatched type converter count\");\n }\n for (var i = 0; i < myTypes.length; ++i) {\n registerType(myTypes[i], myTypeConverters[i]);\n }\n }\n var typeConverters = new Array(dependentTypes.length);\n var unregisteredTypes = [];\n var registered = 0;\n dependentTypes.forEach((dt, i) => {\n if (registeredTypes.hasOwnProperty(dt)) {\n typeConverters[i] = registeredTypes[dt];\n } else {\n unregisteredTypes.push(dt);\n if (!awaitingDependencies.hasOwnProperty(dt)) {\n awaitingDependencies[dt] = [];\n }\n awaitingDependencies[dt].push(() => {\n typeConverters[i] = registeredTypes[dt];\n ++registered;\n if (registered === unregisteredTypes.length) {\n onComplete(typeConverters);\n }\n });\n }\n });\n if (0 === unregisteredTypes.length) {\n onComplete(typeConverters);\n }\n }\n\n function __embind_finalize_value_object(structType) {\n var reg = structRegistrations[structType];\n delete structRegistrations[structType];\n var rawConstructor = reg.rawConstructor;\n var rawDestructor = reg.rawDestructor;\n var fieldRecords = reg.fields;\n var fieldTypes = fieldRecords\n .map(field => field.getterReturnType)\n .concat(fieldRecords.map(field => field.setterArgumentType));\n whenDependentTypesAreResolved([structType], fieldTypes, fieldTypes => {\n var fields = {};\n fieldRecords.forEach((field, i) => {\n var fieldName = field.fieldName;\n var getterReturnType = fieldTypes[i];\n var getter = field.getter;\n var getterContext = field.getterContext;\n var setterArgumentType = fieldTypes[i + fieldRecords.length];\n var setter = field.setter;\n var setterContext = field.setterContext;\n fields[fieldName] = {\n read: ptr => {\n return getterReturnType.fromWireType(getter(getterContext, ptr));\n },\n write: (ptr, o) => {\n var destructors = [];\n setter(\n setterContext,\n ptr,\n setterArgumentType.toWireType(destructors, o)\n );\n runDestructors(destructors);\n },\n };\n });\n return [\n {\n name: reg.name,\n fromWireType: function (ptr) {\n var rv = {};\n for (var i in fields) {\n rv[i] = fields[i].read(ptr);\n }\n rawDestructor(ptr);\n return rv;\n },\n toWireType: function (destructors, o) {\n for (var fieldName in fields) {\n if (!(fieldName in o)) {\n throw new TypeError('Missing field: \"' + fieldName + '\"');\n }\n }\n var ptr = rawConstructor();\n for (fieldName in fields) {\n fields[fieldName].write(ptr, o[fieldName]);\n }\n if (destructors !== null) {\n destructors.push(rawDestructor, ptr);\n }\n return ptr;\n },\n argPackAdvance: 8,\n readValueFromPointer: simpleReadValueFromPointer,\n destructorFunction: rawDestructor,\n },\n ];\n });\n }\n\n function __embind_register_bigint(\n primitiveType,\n name,\n size,\n minRange,\n maxRange\n ) { }\n\n function getShiftFromSize(size) {\n switch (size) {\n case 1:\n return 0;\n\n case 2:\n return 1;\n\n case 4:\n return 2;\n\n case 8:\n return 3;\n\n default:\n throw new TypeError(\"Unknown type size: \" + size);\n }\n }\n\n function embind_init_charCodes() {\n var codes = new Array(256);\n for (var i = 0; i < 256; ++i) {\n codes[i] = String.fromCharCode(i);\n }\n embind_charCodes = codes;\n }\n\n var embind_charCodes = undefined;\n\n function readLatin1String(ptr) {\n var ret = \"\";\n var c = ptr;\n while (HEAPU8[c]) {\n ret += embind_charCodes[HEAPU8[c++]];\n }\n return ret;\n }\n\n var BindingError = undefined;\n\n function throwBindingError(message) {\n throw new BindingError(message);\n }\n\n function registerType(rawType, registeredInstance, options = {}) {\n if (!(\"argPackAdvance\" in registeredInstance)) {\n throw new TypeError(\n \"registerType registeredInstance requires argPackAdvance\"\n );\n }\n var name = registeredInstance.name;\n if (!rawType) {\n throwBindingError(\n 'type \"' + name + '\" must have a positive integer typeid pointer'\n );\n }\n if (registeredTypes.hasOwnProperty(rawType)) {\n if (options.ignoreDuplicateRegistrations) {\n return;\n }\n throwBindingError(\"Cannot register type '\" + name + \"' twice\");\n }\n registeredTypes[rawType] = registeredInstance;\n delete typeDependencies[rawType];\n if (awaitingDependencies.hasOwnProperty(rawType)) {\n var callbacks = awaitingDependencies[rawType];\n delete awaitingDependencies[rawType];\n callbacks.forEach(cb => cb());\n }\n }\n\n function __embind_register_bool(rawType, name, size, trueValue, falseValue) {\n var shift = getShiftFromSize(size);\n name = readLatin1String(name);\n registerType(rawType, {\n name,\n fromWireType: function (wt) {\n return !!wt;\n },\n toWireType: function (destructors, o) {\n return o ? trueValue : falseValue;\n },\n argPackAdvance: 8,\n readValueFromPointer: function (pointer) {\n var heap;\n if (size === 1) {\n heap = HEAP8;\n } else if (size === 2) {\n heap = HEAP16;\n } else if (size === 4) {\n heap = HEAP32;\n } else {\n throw new TypeError(\"Unknown boolean type size: \" + name);\n }\n return this.fromWireType(heap[pointer >> shift]);\n },\n destructorFunction: null,\n });\n }\n\n function ClassHandle_isAliasOf(other) {\n if (!(this instanceof ClassHandle)) {\n return false;\n }\n if (!(other instanceof ClassHandle)) {\n return false;\n }\n var leftClass = this.$$.ptrType.registeredClass;\n var left = this.$$.ptr;\n var rightClass = other.$$.ptrType.registeredClass;\n var right = other.$$.ptr;\n while (leftClass.baseClass) {\n left = leftClass.upcast(left);\n leftClass = leftClass.baseClass;\n }\n while (rightClass.baseClass) {\n right = rightClass.upcast(right);\n rightClass = rightClass.baseClass;\n }\n return leftClass === rightClass && left === right;\n }\n\n function shallowCopyInternalPointer(o) {\n return {\n count: o.count,\n deleteScheduled: o.deleteScheduled,\n preservePointerOnDelete: o.preservePointerOnDelete,\n ptr: o.ptr,\n ptrType: o.ptrType,\n smartPtr: o.smartPtr,\n smartPtrType: o.smartPtrType,\n };\n }\n\n function throwInstanceAlreadyDeleted(obj) {\n function getInstanceTypeName(handle) {\n return handle.$$.ptrType.registeredClass.name;\n }\n throwBindingError(getInstanceTypeName(obj) + \" instance already deleted\");\n }\n\n var finalizationRegistry = false;\n\n function detachFinalizer(handle) { }\n\n function runDestructor($$) {\n if ($$.smartPtr) {\n $$.smartPtrType.rawDestructor($$.smartPtr);\n } else {\n $$.ptrType.registeredClass.rawDestructor($$.ptr);\n }\n }\n\n function releaseClassHandle($$) {\n $$.count.value -= 1;\n var toDelete = 0 === $$.count.value;\n if (toDelete) {\n runDestructor($$);\n }\n }\n\n function downcastPointer(ptr, ptrClass, desiredClass) {\n if (ptrClass === desiredClass) {\n return ptr;\n }\n if (undefined === desiredClass.baseClass) {\n return null;\n }\n var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);\n if (rv === null) {\n return null;\n }\n return desiredClass.downcast(rv);\n }\n\n var registeredPointers = {};\n\n function getInheritedInstanceCount() {\n return Object.keys(registeredInstances).length;\n }\n\n function getLiveInheritedInstances() {\n var rv = [];\n for (var k in registeredInstances) {\n if (registeredInstances.hasOwnProperty(k)) {\n rv.push(registeredInstances[k]);\n }\n }\n return rv;\n }\n\n var deletionQueue = [];\n\n function flushPendingDeletes() {\n while (deletionQueue.length) {\n var obj = deletionQueue.pop();\n obj.$$.deleteScheduled = false;\n obj.delete();\n }\n }\n\n var delayFunction = undefined;\n\n function setDelayFunction(fn) {\n delayFunction = fn;\n if (deletionQueue.length && delayFunction) {\n delayFunction(flushPendingDeletes);\n }\n }\n\n function init_embind() {\n Module.getInheritedInstanceCount = getInheritedInstanceCount;\n Module.getLiveInheritedInstances = getLiveInheritedInstances;\n Module.flushPendingDeletes = flushPendingDeletes;\n Module.setDelayFunction = setDelayFunction;\n }\n\n var registeredInstances = {};\n\n function getBasestPointer(class_, ptr) {\n if (ptr === undefined) {\n throwBindingError(\"ptr should not be undefined\");\n }\n while (class_.baseClass) {\n ptr = class_.upcast(ptr);\n class_ = class_.baseClass;\n }\n return ptr;\n }\n\n function getInheritedInstance(class_, ptr) {\n ptr = getBasestPointer(class_, ptr);\n return registeredInstances[ptr];\n }\n\n function makeClassHandle(prototype, record) {\n if (!record.ptrType || !record.ptr) {\n throwInternalError(\"makeClassHandle requires ptr and ptrType\");\n }\n var hasSmartPtrType = !!record.smartPtrType;\n var hasSmartPtr = !!record.smartPtr;\n if (hasSmartPtrType !== hasSmartPtr) {\n throwInternalError(\"Both smartPtrType and smartPtr must be specified\");\n }\n record.count = {\n value: 1,\n };\n return attachFinalizer(\n Object.create(prototype, {\n $$: {\n value: record,\n },\n })\n );\n }\n\n function RegisteredPointer_fromWireType(ptr) {\n var rawPointer = this.getPointee(ptr);\n if (!rawPointer) {\n this.destructor(ptr);\n return null;\n }\n var registeredInstance = getInheritedInstance(\n this.registeredClass,\n rawPointer\n );\n if (undefined !== registeredInstance) {\n if (0 === registeredInstance.$$.count.value) {\n registeredInstance.$$.ptr = rawPointer;\n registeredInstance.$$.smartPtr = ptr;\n return registeredInstance.clone();\n }\n var rv = registeredInstance.clone();\n this.destructor(ptr);\n return rv;\n }\n function makeDefaultHandle() {\n if (this.isSmartPointer) {\n return makeClassHandle(this.registeredClass.instancePrototype, {\n ptrType: this.pointeeType,\n ptr: rawPointer,\n smartPtrType: this,\n smartPtr: ptr,\n });\n }\n return makeClassHandle(this.registeredClass.instancePrototype, {\n ptrType: this,\n ptr,\n });\n }\n var actualType = this.registeredClass.getActualType(rawPointer);\n var registeredPointerRecord = registeredPointers[actualType];\n if (!registeredPointerRecord) {\n return makeDefaultHandle.call(this);\n }\n var toType;\n if (this.isConst) {\n toType = registeredPointerRecord.constPointerType;\n } else {\n toType = registeredPointerRecord.pointerType;\n }\n var dp = downcastPointer(\n rawPointer,\n this.registeredClass,\n toType.registeredClass\n );\n if (dp === null) {\n return makeDefaultHandle.call(this);\n }\n if (this.isSmartPointer) {\n return makeClassHandle(toType.registeredClass.instancePrototype, {\n ptrType: toType,\n ptr: dp,\n smartPtrType: this,\n smartPtr: ptr,\n });\n }\n return makeClassHandle(toType.registeredClass.instancePrototype, {\n ptrType: toType,\n ptr: dp,\n });\n }\n\n function attachFinalizer(handle) {\n if (\"undefined\" === typeof FinalizationRegistry) {\n attachFinalizer = handle => handle;\n return handle;\n }\n finalizationRegistry = new FinalizationRegistry(info => {\n releaseClassHandle(info.$$);\n });\n attachFinalizer = handle => {\n var $$ = handle.$$;\n var hasSmartPtr = !!$$.smartPtr;\n if (hasSmartPtr) {\n var info = {\n $$,\n };\n finalizationRegistry.register(handle, info, handle);\n }\n return handle;\n };\n detachFinalizer = handle => finalizationRegistry.unregister(handle);\n return attachFinalizer(handle);\n }\n\n function ClassHandle_clone() {\n if (!this.$$.ptr) {\n throwInstanceAlreadyDeleted(this);\n }\n if (this.$$.preservePointerOnDelete) {\n this.$$.count.value += 1;\n return this;\n }\n var clone = attachFinalizer(\n Object.create(Object.getPrototypeOf(this), {\n $$: {\n value: shallowCopyInternalPointer(this.$$),\n },\n })\n );\n clone.$$.count.value += 1;\n clone.$$.deleteScheduled = false;\n return clone;\n }\n\n function ClassHandle_delete() {\n if (!this.$$.ptr) {\n throwInstanceAlreadyDeleted(this);\n }\n if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {\n throwBindingError(\"Object already scheduled for deletion\");\n }\n detachFinalizer(this);\n releaseClassHandle(this.$$);\n if (!this.$$.preservePointerOnDelete) {\n this.$$.smartPtr = undefined;\n this.$$.ptr = undefined;\n }\n }\n\n function ClassHandle_isDeleted() {\n return !this.$$.ptr;\n }\n\n function ClassHandle_deleteLater() {\n if (!this.$$.ptr) {\n throwInstanceAlreadyDeleted(this);\n }\n if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {\n throwBindingError(\"Object already scheduled for deletion\");\n }\n deletionQueue.push(this);\n if (deletionQueue.length === 1 && delayFunction) {\n delayFunction(flushPendingDeletes);\n }\n this.$$.deleteScheduled = true;\n return this;\n }\n\n function init_ClassHandle() {\n ClassHandle.prototype.isAliasOf = ClassHandle_isAliasOf;\n ClassHandle.prototype.clone = ClassHandle_clone;\n ClassHandle.prototype.delete = ClassHandle_delete;\n ClassHandle.prototype.isDeleted = ClassHandle_isDeleted;\n ClassHandle.prototype.deleteLater = ClassHandle_deleteLater;\n }\n\n function ClassHandle() { }\n\n function ensureOverloadTable(proto, methodName, humanName) {\n if (undefined === proto[methodName].overloadTable) {\n var prevFunc = proto[methodName];\n proto[methodName] = function () {\n if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) {\n throwBindingError(\n \"Function '\" +\n humanName +\n \"' called with an invalid number of arguments (\" +\n arguments.length +\n \") - expects one of (\" +\n proto[methodName].overloadTable +\n \")!\"\n );\n }\n return proto[methodName].overloadTable[arguments.length].apply(\n this,\n arguments\n );\n };\n proto[methodName].overloadTable = [];\n proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;\n }\n }\n\n function exposePublicSymbol(name, value, numArguments) {\n if (Module.hasOwnProperty(name)) {\n if (\n undefined === numArguments ||\n (undefined !== Module[name].overloadTable &&\n undefined !== Module[name].overloadTable[numArguments])\n ) {\n throwBindingError(\"Cannot register public name '\" + name + \"' twice\");\n }\n ensureOverloadTable(Module, name, name);\n if (Module.hasOwnProperty(numArguments)) {\n throwBindingError(\n \"Cannot register multiple overloads of a function with the same number of arguments (\" +\n numArguments +\n \")!\"\n );\n }\n Module[name].overloadTable[numArguments] = value;\n } else {\n Module[name] = value;\n if (undefined !== numArguments) {\n Module[name].numArguments = numArguments;\n }\n }\n }\n\n function RegisteredClass(\n name,\n constructor,\n instancePrototype,\n rawDestructor,\n baseClass,\n getActualType,\n upcast,\n downcast\n ) {\n this.name = name;\n this.constructor = constructor;\n this.instancePrototype = instancePrototype;\n this.rawDestructor = rawDestructor;\n this.baseClass = baseClass;\n this.getActualType = getActualType;\n this.upcast = upcast;\n this.downcast = downcast;\n this.pureVirtualFunctions = [];\n }\n\n function upcastPointer(ptr, ptrClass, desiredClass) {\n while (ptrClass !== desiredClass) {\n if (!ptrClass.upcast) {\n throwBindingError(\n \"Expected null or instance of \" +\n desiredClass.name +\n \", got an instance of \" +\n ptrClass.name\n );\n }\n ptr = ptrClass.upcast(ptr);\n ptrClass = ptrClass.baseClass;\n }\n return ptr;\n }\n\n function constNoSmartPtrRawPointerToWireType(destructors, handle) {\n if (handle === null) {\n if (this.isReference) {\n throwBindingError(\"null is not a valid \" + this.name);\n }\n return 0;\n }\n if (!handle.$$) {\n throwBindingError(\n 'Cannot pass \"' + _embind_repr(handle) + '\" as a ' + this.name\n );\n }\n if (!handle.$$.ptr) {\n throwBindingError(\n \"Cannot pass deleted object as a pointer of type \" + this.name\n );\n }\n var handleClass = handle.$$.ptrType.registeredClass;\n var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n return ptr;\n }\n\n function genericPointerToWireType(destructors, handle) {\n var ptr;\n if (handle === null) {\n if (this.isReference) {\n throwBindingError(\"null is not a valid \" + this.name);\n }\n if (this.isSmartPointer) {\n ptr = this.rawConstructor();\n if (destructors !== null) {\n destructors.push(this.rawDestructor, ptr);\n }\n return ptr;\n }\n return 0;\n }\n if (!handle.$$) {\n throwBindingError(\n 'Cannot pass \"' + _embind_repr(handle) + '\" as a ' + this.name\n );\n }\n if (!handle.$$.ptr) {\n throwBindingError(\n \"Cannot pass deleted object as a pointer of type \" + this.name\n );\n }\n if (!this.isConst && handle.$$.ptrType.isConst) {\n throwBindingError(\n \"Cannot convert argument of type \" +\n (handle.$$.smartPtrType\n ? handle.$$.smartPtrType.name\n : handle.$$.ptrType.name) +\n \" to parameter type \" +\n this.name\n );\n }\n var handleClass = handle.$$.ptrType.registeredClass;\n ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n if (this.isSmartPointer) {\n if (undefined === handle.$$.smartPtr) {\n throwBindingError(\"Passing raw pointer to smart pointer is illegal\");\n }\n switch (this.sharingPolicy) {\n case 0:\n if (handle.$$.smartPtrType === this) {\n ptr = handle.$$.smartPtr;\n } else {\n throwBindingError(\n \"Cannot convert argument of type \" +\n (handle.$$.smartPtrType\n ? handle.$$.smartPtrType.name\n : handle.$$.ptrType.name) +\n \" to parameter type \" +\n this.name\n );\n }\n break;\n\n case 1:\n ptr = handle.$$.smartPtr;\n break;\n\n case 2:\n if (handle.$$.smartPtrType === this) {\n ptr = handle.$$.smartPtr;\n } else {\n var clonedHandle = handle.clone();\n ptr = this.rawShare(\n ptr,\n Emval.toHandle(function () {\n clonedHandle.delete();\n })\n );\n if (destructors !== null) {\n destructors.push(this.rawDestructor, ptr);\n }\n }\n break;\n\n default:\n throwBindingError(\"Unsupporting sharing policy\");\n }\n }\n return ptr;\n }\n\n function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) {\n if (handle === null) {\n if (this.isReference) {\n throwBindingError(\"null is not a valid \" + this.name);\n }\n return 0;\n }\n if (!handle.$$) {\n throwBindingError(\n 'Cannot pass \"' + _embind_repr(handle) + '\" as a ' + this.name\n );\n }\n if (!handle.$$.ptr) {\n throwBindingError(\n \"Cannot pass deleted object as a pointer of type \" + this.name\n );\n }\n if (handle.$$.ptrType.isConst) {\n throwBindingError(\n \"Cannot convert argument of type \" +\n handle.$$.ptrType.name +\n \" to parameter type \" +\n this.name\n );\n }\n var handleClass = handle.$$.ptrType.registeredClass;\n var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n return ptr;\n }\n\n function RegisteredPointer_getPointee(ptr) {\n if (this.rawGetPointee) {\n ptr = this.rawGetPointee(ptr);\n }\n return ptr;\n }\n\n function RegisteredPointer_destructor(ptr) {\n if (this.rawDestructor) {\n this.rawDestructor(ptr);\n }\n }\n\n function RegisteredPointer_deleteObject(handle) {\n if (handle !== null) {\n handle.delete();\n }\n }\n\n function init_RegisteredPointer() {\n RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee;\n RegisteredPointer.prototype.destructor = RegisteredPointer_destructor;\n RegisteredPointer.prototype.argPackAdvance = 8;\n RegisteredPointer.prototype.readValueFromPointer =\n simpleReadValueFromPointer;\n RegisteredPointer.prototype.deleteObject = RegisteredPointer_deleteObject;\n RegisteredPointer.prototype.fromWireType = RegisteredPointer_fromWireType;\n }\n\n function RegisteredPointer(\n name,\n registeredClass,\n isReference,\n isConst,\n isSmartPointer,\n pointeeType,\n sharingPolicy,\n rawGetPointee,\n rawConstructor,\n rawShare,\n rawDestructor\n ) {\n this.name = name;\n this.registeredClass = registeredClass;\n this.isReference = isReference;\n this.isConst = isConst;\n this.isSmartPointer = isSmartPointer;\n this.pointeeType = pointeeType;\n this.sharingPolicy = sharingPolicy;\n this.rawGetPointee = rawGetPointee;\n this.rawConstructor = rawConstructor;\n this.rawShare = rawShare;\n this.rawDestructor = rawDestructor;\n if (!isSmartPointer && registeredClass.baseClass === undefined) {\n if (isConst) {\n this.toWireType = constNoSmartPtrRawPointerToWireType;\n this.destructorFunction = null;\n } else {\n this.toWireType = nonConstNoSmartPtrRawPointerToWireType;\n this.destructorFunction = null;\n }\n } else {\n this.toWireType = genericPointerToWireType;\n }\n }\n\n function replacePublicSymbol(name, value, numArguments) {\n if (!Module.hasOwnProperty(name)) {\n throwInternalError(\"Replacing nonexistant public symbol\");\n }\n if (\n undefined !== Module[name].overloadTable &&\n undefined !== numArguments\n ) {\n Module[name].overloadTable[numArguments] = value;\n } else {\n Module[name] = value;\n Module[name].argCount = numArguments;\n }\n }\n\n function dynCallLegacy(sig, ptr, args) {\n var f = Module[\"dynCall_\" + sig];\n return args && args.length\n ? f.apply(null, [ptr].concat(args))\n : f.call(null, ptr);\n }\n\n function dynCall(sig, ptr, args) {\n if (sig.includes(\"j\")) {\n return dynCallLegacy(sig, ptr, args);\n }\n return getWasmTableEntry(ptr).apply(null, args);\n }\n\n function getDynCaller(sig, ptr) {\n var argCache = [];\n return function () {\n argCache.length = 0;\n Object.assign(argCache, arguments);\n return dynCall(sig, ptr, argCache);\n };\n }\n\n function embind__requireFunction(signature, rawFunction) {\n signature = readLatin1String(signature);\n function makeDynCaller() {\n if (signature.includes(\"j\")) {\n return getDynCaller(signature, rawFunction);\n }\n return getWasmTableEntry(rawFunction);\n }\n var fp = makeDynCaller();\n if (typeof fp != \"function\") {\n throwBindingError(\n \"unknown function pointer with signature \" +\n signature +\n \": \" +\n rawFunction\n );\n }\n return fp;\n }\n\n var UnboundTypeError = undefined;\n\n function getTypeName(type) {\n var ptr = ___getTypeName(type);\n var rv = readLatin1String(ptr);\n _free(ptr);\n return rv;\n }\n\n function throwUnboundTypeError(message, types) {\n var unboundTypes = [];\n var seen = {};\n function visit(type) {\n if (seen[type]) {\n return;\n }\n if (registeredTypes[type]) {\n return;\n }\n if (typeDependencies[type]) {\n typeDependencies[type].forEach(visit);\n return;\n }\n unboundTypes.push(type);\n seen[type] = true;\n }\n types.forEach(visit);\n throw new UnboundTypeError(\n message + \": \" + unboundTypes.map(getTypeName).join([\", \"])\n );\n }\n\n function __embind_register_class(\n rawType,\n rawPointerType,\n rawConstPointerType,\n baseClassRawType,\n getActualTypeSignature,\n getActualType,\n upcastSignature,\n upcast,\n downcastSignature,\n downcast,\n name,\n destructorSignature,\n rawDestructor\n ) {\n name = readLatin1String(name);\n getActualType = embind__requireFunction(\n getActualTypeSignature,\n getActualType\n );\n if (upcast) {\n upcast = embind__requireFunction(upcastSignature, upcast);\n }\n if (downcast) {\n downcast = embind__requireFunction(downcastSignature, downcast);\n }\n rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);\n var legalFunctionName = makeLegalFunctionName(name);\n exposePublicSymbol(legalFunctionName, function () {\n throwUnboundTypeError(\n \"Cannot construct \" + name + \" due to unbound types\",\n [baseClassRawType]\n );\n });\n whenDependentTypesAreResolved(\n [rawType, rawPointerType, rawConstPointerType],\n baseClassRawType ? [baseClassRawType] : [],\n function (base) {\n base = base[0];\n var baseClass;\n var basePrototype;\n if (baseClassRawType) {\n baseClass = base.registeredClass;\n basePrototype = baseClass.instancePrototype;\n } else {\n basePrototype = ClassHandle.prototype;\n }\n var constructor = createNamedFunction(legalFunctionName, function () {\n if (Object.getPrototypeOf(this) !== instancePrototype) {\n throw new BindingError(\"Use 'new' to construct \" + name);\n }\n if (undefined === registeredClass.constructor_body) {\n throw new BindingError(name + \" has no accessible constructor\");\n }\n var body = registeredClass.constructor_body[arguments.length];\n if (undefined === body) {\n throw new BindingError(\n \"Tried to invoke ctor of \" +\n name +\n \" with invalid number of parameters (\" +\n arguments.length +\n \") - expected (\" +\n Object.keys(registeredClass.constructor_body).toString() +\n \") parameters instead!\"\n );\n }\n return body.apply(this, arguments);\n });\n var instancePrototype = Object.create(basePrototype, {\n constructor: {\n value: constructor,\n },\n });\n constructor.prototype = instancePrototype;\n var registeredClass = new RegisteredClass(\n name,\n constructor,\n instancePrototype,\n rawDestructor,\n baseClass,\n getActualType,\n upcast,\n downcast\n );\n var referenceConverter = new RegisteredPointer(\n name,\n registeredClass,\n true,\n false,\n false\n );\n var pointerConverter = new RegisteredPointer(\n name + \"*\",\n registeredClass,\n false,\n false,\n false\n );\n var constPointerConverter = new RegisteredPointer(\n name + \" const*\",\n registeredClass,\n false,\n true,\n false\n );\n registeredPointers[rawType] = {\n pointerType: pointerConverter,\n constPointerType: constPointerConverter,\n };\n replacePublicSymbol(legalFunctionName, constructor);\n return [referenceConverter, pointerConverter, constPointerConverter];\n }\n );\n }\n\n function heap32VectorToArray(count, firstElement) {\n var array = [];\n for (var i = 0; i < count; i++) {\n array.push(HEAP32[(firstElement >> 2) + i]);\n }\n return array;\n }\n\n function __embind_register_class_constructor(\n rawClassType,\n argCount,\n rawArgTypesAddr,\n invokerSignature,\n invoker,\n rawConstructor\n ) {\n assert(argCount > 0);\n var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n invoker = embind__requireFunction(invokerSignature, invoker);\n whenDependentTypesAreResolved([], [rawClassType], function (classType) {\n classType = classType[0];\n var humanName = \"constructor \" + classType.name;\n if (undefined === classType.registeredClass.constructor_body) {\n classType.registeredClass.constructor_body = [];\n }\n if (\n undefined !== classType.registeredClass.constructor_body[argCount - 1]\n ) {\n throw new BindingError(\n \"Cannot register multiple constructors with identical number of parameters (\" +\n (argCount - 1) +\n \") for class '\" +\n classType.name +\n \"'! Overload resolution is currently only performed using the parameter count, not actual type info!\"\n );\n }\n classType.registeredClass.constructor_body[argCount - 1] = () => {\n throwUnboundTypeError(\n \"Cannot construct \" + classType.name + \" due to unbound types\",\n rawArgTypes\n );\n };\n whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) {\n argTypes.splice(1, 0, null);\n classType.registeredClass.constructor_body[argCount - 1] =\n craftInvokerFunction(\n humanName,\n argTypes,\n null,\n invoker,\n rawConstructor\n );\n return [];\n });\n return [];\n });\n }\n\n function craftInvokerFunction(\n humanName,\n argTypes,\n classType,\n cppInvokerFunc,\n cppTargetFunc\n ) {\n var argCount = argTypes.length;\n if (argCount < 2) {\n throwBindingError(\n \"argTypes array size mismatch! Must at least get return value and 'this' types!\"\n );\n }\n var isClassMethodFunc = argTypes[1] !== null && classType !== null;\n var needsDestructorStack = false;\n for (var i = 1; i < argTypes.length; ++i) {\n if (\n argTypes[i] !== null &&\n argTypes[i].destructorFunction === undefined\n ) {\n needsDestructorStack = true;\n break;\n }\n }\n var returns = argTypes[0].name !== \"void\";\n var expectedArgCount = argCount - 2;\n var argsWired = new Array(expectedArgCount);\n var invokerFuncArgs = [];\n var destructors = [];\n return function () {\n if (arguments.length !== expectedArgCount) {\n throwBindingError(\n \"function \" +\n humanName +\n \" called with \" +\n arguments.length +\n \" arguments, expected \" +\n expectedArgCount +\n \" args!\"\n );\n }\n destructors.length = 0;\n var thisWired;\n invokerFuncArgs.length = isClassMethodFunc ? 2 : 1;\n invokerFuncArgs[0] = cppTargetFunc;\n if (isClassMethodFunc) {\n thisWired = argTypes[1].toWireType(destructors, this);\n invokerFuncArgs[1] = thisWired;\n }\n for (var i = 0; i < expectedArgCount; ++i) {\n argsWired[i] = argTypes[i + 2].toWireType(destructors, arguments[i]);\n invokerFuncArgs.push(argsWired[i]);\n }\n var rv = cppInvokerFunc.apply(null, invokerFuncArgs);\n function onDone(rv) {\n if (needsDestructorStack) {\n runDestructors(destructors);\n } else {\n for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; i++) {\n var param = i === 1 ? thisWired : argsWired[i - 2];\n if (argTypes[i].destructorFunction !== null) {\n argTypes[i].destructorFunction(param);\n }\n }\n }\n if (returns) {\n return argTypes[0].fromWireType(rv);\n }\n }\n return onDone(rv);\n };\n }\n\n function __embind_register_class_function(\n rawClassType,\n methodName,\n argCount,\n rawArgTypesAddr,\n invokerSignature,\n rawInvoker,\n context,\n isPureVirtual\n ) {\n var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n methodName = readLatin1String(methodName);\n rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);\n whenDependentTypesAreResolved([], [rawClassType], function (classType) {\n classType = classType[0];\n var humanName = classType.name + \".\" + methodName;\n if (methodName.startsWith(\"@@\")) {\n methodName = Symbol[methodName.substring(2)];\n }\n if (isPureVirtual) {\n classType.registeredClass.pureVirtualFunctions.push(methodName);\n }\n function unboundTypesHandler() {\n throwUnboundTypeError(\n \"Cannot call \" + humanName + \" due to unbound types\",\n rawArgTypes\n );\n }\n var proto = classType.registeredClass.instancePrototype;\n var method = proto[methodName];\n if (\n undefined === method ||\n (undefined === method.overloadTable &&\n method.className !== classType.name &&\n method.argCount === argCount - 2)\n ) {\n unboundTypesHandler.argCount = argCount - 2;\n unboundTypesHandler.className = classType.name;\n proto[methodName] = unboundTypesHandler;\n } else {\n ensureOverloadTable(proto, methodName, humanName);\n proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;\n }\n whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) {\n var memberFunction = craftInvokerFunction(\n humanName,\n argTypes,\n classType,\n rawInvoker,\n context\n );\n if (undefined === proto[methodName].overloadTable) {\n memberFunction.argCount = argCount - 2;\n proto[methodName] = memberFunction;\n } else {\n proto[methodName].overloadTable[argCount - 2] = memberFunction;\n }\n return [];\n });\n return [];\n });\n }\n\n var emval_free_list = [];\n\n var emval_handle_array = [\n {},\n {\n value: undefined,\n },\n {\n value: null,\n },\n {\n value: true,\n },\n {\n value: false,\n },\n ];\n\n function __emval_decref(handle) {\n if (handle > 4 && 0 === --emval_handle_array[handle].refcount) {\n emval_handle_array[handle] = undefined;\n emval_free_list.push(handle);\n }\n }\n\n function count_emval_handles() {\n var count = 0;\n for (var i = 5; i < emval_handle_array.length; ++i) {\n if (emval_handle_array[i] !== undefined) {\n ++count;\n }\n }\n return count;\n }\n\n function get_first_emval() {\n for (var i = 5; i < emval_handle_array.length; ++i) {\n if (emval_handle_array[i] !== undefined) {\n return emval_handle_array[i];\n }\n }\n return null;\n }\n\n function init_emval() {\n Module.count_emval_handles = count_emval_handles;\n Module.get_first_emval = get_first_emval;\n }\n\n var Emval = {\n toValue: handle => {\n if (!handle) {\n throwBindingError(\"Cannot use deleted val. handle = \" + handle);\n }\n return emval_handle_array[handle].value;\n },\n toHandle: value => {\n switch (value) {\n case undefined:\n return 1;\n\n case null:\n return 2;\n\n case true:\n return 3;\n\n case false:\n return 4;\n\n default: {\n var handle = emval_free_list.length\n ? emval_free_list.pop()\n : emval_handle_array.length;\n emval_handle_array[handle] = {\n refcount: 1,\n value,\n };\n return handle;\n }\n }\n },\n };\n\n function __embind_register_emval(rawType, name) {\n name = readLatin1String(name);\n registerType(rawType, {\n name,\n fromWireType: function (handle) {\n var rv = Emval.toValue(handle);\n __emval_decref(handle);\n return rv;\n },\n toWireType: function (destructors, value) {\n return Emval.toHandle(value);\n },\n argPackAdvance: 8,\n readValueFromPointer: simpleReadValueFromPointer,\n destructorFunction: null,\n });\n }\n\n function _embind_repr(v) {\n if (v === null) {\n return \"null\";\n }\n var t = typeof v;\n if (t === \"object\" || t === \"array\" || t === \"function\") {\n return v.toString();\n }\n return \"\" + v;\n }\n\n function floatReadValueFromPointer(name, shift) {\n switch (shift) {\n case 2:\n return function (pointer) {\n return this.fromWireType(HEAPF32[pointer >> 2]);\n };\n\n case 3:\n return function (pointer) {\n return this.fromWireType(HEAPF64[pointer >> 3]);\n };\n\n default:\n throw new TypeError(\"Unknown float type: \" + name);\n }\n }\n\n function __embind_register_float(rawType, name, size) {\n var shift = getShiftFromSize(size);\n name = readLatin1String(name);\n registerType(rawType, {\n name,\n fromWireType: function (value) {\n return value;\n },\n toWireType: function (destructors, value) {\n return value;\n },\n argPackAdvance: 8,\n readValueFromPointer: floatReadValueFromPointer(name, shift),\n destructorFunction: null,\n });\n }\n\n function integerReadValueFromPointer(name, shift, signed) {\n switch (shift) {\n case 0:\n return signed\n ? function readS8FromPointer(pointer) {\n return HEAP8[pointer];\n }\n : function readU8FromPointer(pointer) {\n return HEAPU8[pointer];\n };\n\n case 1:\n return signed\n ? function readS16FromPointer(pointer) {\n return HEAP16[pointer >> 1];\n }\n : function readU16FromPointer(pointer) {\n return HEAPU16[pointer >> 1];\n };\n\n case 2:\n return signed\n ? function readS32FromPointer(pointer) {\n return HEAP32[pointer >> 2];\n }\n : function readU32FromPointer(pointer) {\n return HEAPU32[pointer >> 2];\n };\n\n default:\n throw new TypeError(\"Unknown integer type: \" + name);\n }\n }\n\n function __embind_register_integer(\n primitiveType,\n name,\n size,\n minRange,\n maxRange\n ) {\n name = readLatin1String(name);\n if (maxRange === -1) {\n maxRange = 4294967295;\n }\n var shift = getShiftFromSize(size);\n var fromWireType = value => value;\n if (minRange === 0) {\n var bitshift = 32 - 8 * size;\n fromWireType = value => (value << bitshift) >>> bitshift;\n }\n var isUnsignedType = name.includes(\"unsigned\");\n var checkAssertions = (value, toTypeName) => { };\n var toWireType;\n if (isUnsignedType) {\n toWireType = function (destructors, value) {\n checkAssertions(value, this.name);\n return value >>> 0;\n };\n } else {\n toWireType = function (destructors, value) {\n checkAssertions(value, this.name);\n return value;\n };\n }\n registerType(primitiveType, {\n name,\n fromWireType: fromWireType,\n toWireType: toWireType,\n argPackAdvance: 8,\n readValueFromPointer: integerReadValueFromPointer(\n name,\n shift,\n minRange !== 0\n ),\n destructorFunction: null,\n });\n }\n\n function __embind_register_memory_view(rawType, dataTypeIndex, name) {\n var typeMapping = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n ];\n var TA = typeMapping[dataTypeIndex];\n function decodeMemoryView(handle) {\n handle = handle >> 2;\n var heap = HEAPU32;\n var size = heap[handle];\n var data = heap[handle + 1];\n return new TA(buffer, data, size);\n }\n name = readLatin1String(name);\n registerType(\n rawType,\n {\n name,\n fromWireType: decodeMemoryView,\n argPackAdvance: 8,\n readValueFromPointer: decodeMemoryView,\n },\n {\n ignoreDuplicateRegistrations: true,\n }\n );\n }\n\n function __embind_register_smart_ptr(\n rawType,\n rawPointeeType,\n name,\n sharingPolicy,\n getPointeeSignature,\n rawGetPointee,\n constructorSignature,\n rawConstructor,\n shareSignature,\n rawShare,\n destructorSignature,\n rawDestructor\n ) {\n name = readLatin1String(name);\n rawGetPointee = embind__requireFunction(getPointeeSignature, rawGetPointee);\n rawConstructor = embind__requireFunction(\n constructorSignature,\n rawConstructor\n );\n rawShare = embind__requireFunction(shareSignature, rawShare);\n rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);\n whenDependentTypesAreResolved(\n [rawType],\n [rawPointeeType],\n function (pointeeType) {\n pointeeType = pointeeType[0];\n var registeredPointer = new RegisteredPointer(\n name,\n pointeeType.registeredClass,\n false,\n false,\n true,\n pointeeType,\n sharingPolicy,\n rawGetPointee,\n rawConstructor,\n rawShare,\n rawDestructor\n );\n return [registeredPointer];\n }\n );\n }\n\n function __embind_register_std_string(rawType, name) {\n name = readLatin1String(name);\n var stdStringIsUTF8 = name === \"std::string\";\n registerType(rawType, {\n name,\n fromWireType: function (value) {\n var length = HEAPU32[value >> 2];\n var str;\n if (stdStringIsUTF8) {\n var decodeStartPtr = value + 4;\n for (var i = 0; i <= length; ++i) {\n var currentBytePtr = value + 4 + i;\n if (i == length || HEAPU8[currentBytePtr] == 0) {\n var maxRead = currentBytePtr - decodeStartPtr;\n var stringSegment = UTF8ToString(decodeStartPtr, maxRead);\n if (str === undefined) {\n str = stringSegment;\n } else {\n str += String.fromCharCode(0);\n str += stringSegment;\n }\n decodeStartPtr = currentBytePtr + 1;\n }\n }\n } else {\n var a = new Array(length);\n for (var i = 0; i < length; ++i) {\n a[i] = String.fromCharCode(HEAPU8[value + 4 + i]);\n }\n str = a.join(\"\");\n }\n _free(value);\n return str;\n },\n toWireType: function (destructors, value) {\n if (value instanceof ArrayBuffer) {\n value = new Uint8Array(value);\n }\n var getLength;\n var valueIsOfTypeString = typeof value == \"string\";\n if (\n !(\n valueIsOfTypeString ||\n value instanceof Uint8Array ||\n value instanceof Uint8ClampedArray ||\n value instanceof Int8Array\n )\n ) {\n throwBindingError(\"Cannot pass non-string to std::string\");\n }\n if (stdStringIsUTF8 && valueIsOfTypeString) {\n getLength = () => lengthBytesUTF8(value);\n } else {\n getLength = () => value.length;\n }\n var length = getLength();\n var ptr = _malloc(4 + length + 1);\n HEAPU32[ptr >> 2] = length;\n if (stdStringIsUTF8 && valueIsOfTypeString) {\n stringToUTF8(value, ptr + 4, length + 1);\n } else if (valueIsOfTypeString) {\n for (var i = 0; i < length; ++i) {\n var charCode = value.charCodeAt(i);\n if (charCode > 255) {\n _free(ptr);\n throwBindingError(\n \"String has UTF-16 code units that do not fit in 8 bits\"\n );\n }\n HEAPU8[ptr + 4 + i] = charCode;\n }\n } else {\n for (var i = 0; i < length; ++i) {\n HEAPU8[ptr + 4 + i] = value[i];\n }\n }\n if (destructors !== null) {\n destructors.push(_free, ptr);\n }\n return ptr;\n },\n argPackAdvance: 8,\n readValueFromPointer: simpleReadValueFromPointer,\n destructorFunction(ptr) {\n _free(ptr);\n },\n });\n }\n\n function __embind_register_std_wstring(rawType, charSize, name) {\n name = readLatin1String(name);\n var decodeString, encodeString, getHeap, lengthBytesUTF, shift;\n if (charSize === 2) {\n decodeString = UTF16ToString;\n encodeString = stringToUTF16;\n lengthBytesUTF = lengthBytesUTF16;\n getHeap = () => HEAPU16;\n shift = 1;\n } else if (charSize === 4) {\n decodeString = UTF32ToString;\n encodeString = stringToUTF32;\n lengthBytesUTF = lengthBytesUTF32;\n getHeap = () => HEAPU32;\n shift = 2;\n }\n registerType(rawType, {\n name,\n fromWireType: function (value) {\n var length = HEAPU32[value >> 2];\n var HEAP = getHeap();\n var str;\n var decodeStartPtr = value + 4;\n for (var i = 0; i <= length; ++i) {\n var currentBytePtr = value + 4 + i * charSize;\n if (i == length || HEAP[currentBytePtr >> shift] == 0) {\n var maxReadBytes = currentBytePtr - decodeStartPtr;\n var stringSegment = decodeString(decodeStartPtr, maxReadBytes);\n if (str === undefined) {\n str = stringSegment;\n } else {\n str += String.fromCharCode(0);\n str += stringSegment;\n }\n decodeStartPtr = currentBytePtr + charSize;\n }\n }\n _free(value);\n return str;\n },\n toWireType: function (destructors, value) {\n if (!(typeof value == \"string\")) {\n throwBindingError(\n \"Cannot pass non-string to C++ string type \" + name\n );\n }\n var length = lengthBytesUTF(value);\n var ptr = _malloc(4 + length + charSize);\n HEAPU32[ptr >> 2] = length >> shift;\n encodeString(value, ptr + 4, length + charSize);\n if (destructors !== null) {\n destructors.push(_free, ptr);\n }\n return ptr;\n },\n argPackAdvance: 8,\n readValueFromPointer: simpleReadValueFromPointer,\n destructorFunction(ptr) {\n _free(ptr);\n },\n });\n }\n\n function __embind_register_value_object(\n rawType,\n name,\n constructorSignature,\n rawConstructor,\n destructorSignature,\n rawDestructor\n ) {\n structRegistrations[rawType] = {\n name: readLatin1String(name),\n rawConstructor: embind__requireFunction(\n constructorSignature,\n rawConstructor\n ),\n rawDestructor: embind__requireFunction(\n destructorSignature,\n rawDestructor\n ),\n fields: [],\n };\n }\n\n function __embind_register_value_object_field(\n structType,\n fieldName,\n getterReturnType,\n getterSignature,\n getter,\n getterContext,\n setterArgumentType,\n setterSignature,\n setter,\n setterContext\n ) {\n structRegistrations[structType].fields.push({\n fieldName: readLatin1String(fieldName),\n getterReturnType,\n getter: embind__requireFunction(getterSignature, getter),\n getterContext,\n setterArgumentType,\n setter: embind__requireFunction(setterSignature, setter),\n setterContext,\n });\n }\n\n function __embind_register_void(rawType, name) {\n name = readLatin1String(name);\n registerType(rawType, {\n isVoid: true,\n name,\n argPackAdvance: 0,\n fromWireType: function () {\n return undefined;\n },\n toWireType: function (destructors, o) {\n return undefined;\n },\n });\n }\n\n function __emscripten_date_now() {\n return Date.now();\n }\n\n var nowIsMonotonic = true;\n\n function __emscripten_get_now_is_monotonic() {\n return nowIsMonotonic;\n }\n\n function requireRegisteredType(rawType, humanName) {\n var impl = registeredTypes[rawType];\n if (undefined === impl) {\n throwBindingError(\n humanName + \" has unknown type \" + getTypeName(rawType)\n );\n }\n return impl;\n }\n\n function __emval_lookupTypes(argCount, argTypes) {\n var a = new Array(argCount);\n for (var i = 0; i < argCount; ++i) {\n a[i] = requireRegisteredType(\n HEAP32[(argTypes >> 2) + i],\n \"parameter \" + i\n );\n }\n return a;\n }\n\n function __emval_call(handle, argCount, argTypes, argv) {\n handle = Emval.toValue(handle);\n var types = __emval_lookupTypes(argCount, argTypes);\n var args = new Array(argCount);\n for (var i = 0; i < argCount; ++i) {\n var type = types[i];\n args[i] = type.readValueFromPointer(argv);\n argv += type.argPackAdvance;\n }\n var rv = handle.apply(undefined, args);\n return Emval.toHandle(rv);\n }\n\n function __emval_incref(handle) {\n if (handle > 4) {\n emval_handle_array[handle].refcount += 1;\n }\n }\n\n function __emval_take_value(type, argv) {\n type = requireRegisteredType(type, \"_emval_take_value\");\n var v = type.readValueFromPointer(argv);\n return Emval.toHandle(v);\n }\n\n function __localtime_js(time, tmPtr) {\n var date = new Date(HEAP32[time >> 2] * 1e3);\n HEAP32[tmPtr >> 2] = date.getSeconds();\n HEAP32[(tmPtr + 4) >> 2] = date.getMinutes();\n HEAP32[(tmPtr + 8) >> 2] = date.getHours();\n HEAP32[(tmPtr + 12) >> 2] = date.getDate();\n HEAP32[(tmPtr + 16) >> 2] = date.getMonth();\n HEAP32[(tmPtr + 20) >> 2] = date.getFullYear() - 1900;\n HEAP32[(tmPtr + 24) >> 2] = date.getDay();\n var start = new Date(date.getFullYear(), 0, 1);\n var yday = ((date.getTime() - start.getTime()) / (1e3 * 60 * 60 * 24)) | 0;\n HEAP32[(tmPtr + 28) >> 2] = yday;\n HEAP32[(tmPtr + 36) >> 2] = -(date.getTimezoneOffset() * 60);\n var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset();\n var winterOffset = start.getTimezoneOffset();\n var dst =\n (summerOffset != winterOffset &&\n date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0;\n HEAP32[(tmPtr + 32) >> 2] = dst;\n }\n\n function __mmap_js(addr, len, prot, flags, fd, off, allocated, builtin) {\n return -52;\n }\n\n function __munmap_js(addr, len, prot, flags, fd, offset) { }\n\n function _tzset_impl(timezone, daylight, tzname) {\n var currentYear = new Date().getFullYear();\n var winter = new Date(currentYear, 0, 1);\n var summer = new Date(currentYear, 6, 1);\n var winterOffset = winter.getTimezoneOffset();\n var summerOffset = summer.getTimezoneOffset();\n var stdTimezoneOffset = Math.max(winterOffset, summerOffset);\n HEAP32[timezone >> 2] = stdTimezoneOffset * 60;\n HEAP32[daylight >> 2] = Number(winterOffset != summerOffset);\n function extractZone(date) {\n var match = date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);\n return match ? match[1] : \"GMT\";\n }\n var winterName = extractZone(winter);\n var summerName = extractZone(summer);\n var winterNamePtr = allocateUTF8(winterName);\n var summerNamePtr = allocateUTF8(summerName);\n if (summerOffset < winterOffset) {\n HEAP32[tzname >> 2] = winterNamePtr;\n HEAP32[(tzname + 4) >> 2] = summerNamePtr;\n } else {\n HEAP32[tzname >> 2] = summerNamePtr;\n HEAP32[(tzname + 4) >> 2] = winterNamePtr;\n }\n }\n\n function __tzset_js(timezone, daylight, tzname) {\n if (__tzset_js.called) {\n return;\n }\n __tzset_js.called = true;\n _tzset_impl(timezone, daylight, tzname);\n }\n\n function _abort() {\n abort(\"\");\n }\n\n var readAsmConstArgsArray = [];\n\n function readAsmConstArgs(sigPtr, buf) {\n readAsmConstArgsArray.length = 0;\n var ch;\n buf >>= 2;\n while ((ch = HEAPU8[sigPtr++])) {\n var readAsmConstArgsDouble = ch < 105;\n if (readAsmConstArgsDouble && buf & 1) {\n buf++;\n }\n readAsmConstArgsArray.push(\n readAsmConstArgsDouble ? HEAPF64[buf++ >> 1] : HEAP32[buf]\n );\n ++buf;\n }\n return readAsmConstArgsArray;\n }\n\n function _emscripten_asm_const_int(code, sigPtr, argbuf) {\n var args = readAsmConstArgs(sigPtr, argbuf);\n return ASM_CONSTS[code].apply(null, args);\n }\n\n function _emscripten_get_heap_max() {\n return 2147483648;\n }\n\n var _emscripten_get_now;\n\n _emscripten_get_now = () => performance.now();\n\n function _emscripten_memcpy_big(dest, src, num) {\n HEAPU8.copyWithin(dest, src, src + num);\n }\n\n function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n } catch (e) { }\n }\n\n function _emscripten_resize_heap(requestedSize) {\n var oldSize = HEAPU8.length;\n requestedSize = requestedSize >>> 0;\n var maxHeapSize = _emscripten_get_heap_max();\n if (requestedSize > maxHeapSize) {\n return false;\n }\n let alignUp = (x, multiple) => x + ((multiple - (x % multiple)) % multiple);\n for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {\n var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(\n overGrownHeapSize,\n requestedSize + 100663296\n );\n var newSize = Math.min(\n maxHeapSize,\n alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)\n );\n var replacement = emscripten_realloc_buffer(newSize);\n if (replacement) {\n return true;\n }\n }\n return false;\n }\n\n var ENV = {};\n\n function getExecutableName() {\n return thisProgram || \"./this.program\";\n }\n\n function getEnvStrings() {\n if (!getEnvStrings.strings) {\n var lang =\n (\n (typeof navigator == \"object\" &&\n navigator.languages &&\n navigator.languages[0]) ||\n \"C\"\n ).replace(\"-\", \"_\") + \".UTF-8\";\n var env = {\n USER: \"web_user\",\n LOGNAME: \"web_user\",\n PATH: \"/\",\n PWD: \"/\",\n HOME: \"/home/web_user\",\n LANG: lang,\n _: getExecutableName(),\n };\n for (var x in ENV) {\n if (ENV[x] === undefined) {\n delete env[x];\n } else {\n env[x] = ENV[x];\n }\n }\n var strings = [];\n for (var x in env) {\n strings.push(x + \"=\" + env[x]);\n }\n getEnvStrings.strings = strings;\n }\n return getEnvStrings.strings;\n }\n\n function _environ_get(__environ, environ_buf) {\n var bufSize = 0;\n getEnvStrings().forEach(function (string, i) {\n var ptr = environ_buf + bufSize;\n HEAP32[(__environ + i * 4) >> 2] = ptr;\n writeAsciiToMemory(string, ptr);\n bufSize += string.length + 1;\n });\n return 0;\n }\n\n function _environ_sizes_get(penviron_count, penviron_buf_size) {\n var strings = getEnvStrings();\n HEAP32[penviron_count >> 2] = strings.length;\n var bufSize = 0;\n strings.forEach(function (string) {\n bufSize += string.length + 1;\n });\n HEAP32[penviron_buf_size >> 2] = bufSize;\n return 0;\n }\n\n function _exit(status) {\n exit(status);\n }\n\n function _fd_close(fd) {\n return 0;\n }\n\n function _fd_read(fd, iov, iovcnt, pnum) {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = SYSCALLS.doReadv(stream, iov, iovcnt);\n HEAP32[pnum >> 2] = num;\n return 0;\n }\n\n function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { }\n\n function _fd_write(fd, iov, iovcnt, pnum) {\n var num = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[iov >> 2];\n var len = HEAP32[(iov + 4) >> 2];\n iov += 8;\n for (var j = 0; j < len; j++) {\n SYSCALLS.printChar(fd, HEAPU8[ptr + j]);\n }\n num += len;\n }\n HEAP32[pnum >> 2] = num;\n return 0;\n }\n\n function getRandomDevice() {\n if (\n typeof crypto == \"object\" &&\n typeof crypto.getRandomValues == \"function\"\n ) {\n var randomBuffer = new Uint8Array(1);\n return function () {\n crypto.getRandomValues(randomBuffer);\n return randomBuffer[0];\n };\n }\n return function () {\n abort(\"randomDevice\");\n };\n }\n\n function _getentropy(buffer, size) {\n if (!_getentropy.randomDevice) {\n _getentropy.randomDevice = getRandomDevice();\n }\n for (var i = 0; i < size; i++) {\n HEAP8[(buffer + i) >> 0] = _getentropy.randomDevice();\n }\n return 0;\n }\n\n function _pclose() {\n err(\"missing function: pclose\");\n abort(-1);\n }\n\n function _setTempRet0(val) {\n setTempRet0(val);\n }\n\n function __isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n }\n\n function __arraySum(array, index) {\n var sum = 0;\n for (var i = 0; i <= index; sum += array[i++]) { }\n return sum;\n }\n\n var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n function __addDays(date, days) {\n var newDate = new Date(date.getTime());\n while (days > 0) {\n var leap = __isLeapYear(newDate.getFullYear());\n var currentMonth = newDate.getMonth();\n var daysInCurrentMonth = (\n leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR\n )[currentMonth];\n if (days > daysInCurrentMonth - newDate.getDate()) {\n days -= daysInCurrentMonth - newDate.getDate() + 1;\n newDate.setDate(1);\n if (currentMonth < 11) {\n newDate.setMonth(currentMonth + 1);\n } else {\n newDate.setMonth(0);\n newDate.setFullYear(newDate.getFullYear() + 1);\n }\n } else {\n newDate.setDate(newDate.getDate() + days);\n return newDate;\n }\n }\n return newDate;\n }\n\n function _strftime(s, maxsize, format, tm) {\n var tm_zone = HEAP32[(tm + 40) >> 2];\n var date = {\n tm_sec: HEAP32[tm >> 2],\n tm_min: HEAP32[(tm + 4) >> 2],\n tm_hour: HEAP32[(tm + 8) >> 2],\n tm_mday: HEAP32[(tm + 12) >> 2],\n tm_mon: HEAP32[(tm + 16) >> 2],\n tm_year: HEAP32[(tm + 20) >> 2],\n tm_wday: HEAP32[(tm + 24) >> 2],\n tm_yday: HEAP32[(tm + 28) >> 2],\n tm_isdst: HEAP32[(tm + 32) >> 2],\n tm_gmtoff: HEAP32[(tm + 36) >> 2],\n tm_zone: tm_zone ? UTF8ToString(tm_zone) : \"\",\n };\n var pattern = UTF8ToString(format);\n var EXPANSION_RULES_1 = {\n \"%c\": \"%a %b %d %H:%M:%S %Y\",\n \"%D\": \"%m/%d/%y\",\n \"%F\": \"%Y-%m-%d\",\n \"%h\": \"%b\",\n \"%r\": \"%I:%M:%S %p\",\n \"%R\": \"%H:%M\",\n \"%T\": \"%H:%M:%S\",\n \"%x\": \"%m/%d/%y\",\n \"%X\": \"%H:%M:%S\",\n \"%Ec\": \"%c\",\n \"%EC\": \"%C\",\n \"%Ex\": \"%m/%d/%y\",\n \"%EX\": \"%H:%M:%S\",\n \"%Ey\": \"%y\",\n \"%EY\": \"%Y\",\n \"%Od\": \"%d\",\n \"%Oe\": \"%e\",\n \"%OH\": \"%H\",\n \"%OI\": \"%I\",\n \"%Om\": \"%m\",\n \"%OM\": \"%M\",\n \"%OS\": \"%S\",\n \"%Ou\": \"%u\",\n \"%OU\": \"%U\",\n \"%OV\": \"%V\",\n \"%Ow\": \"%w\",\n \"%OW\": \"%W\",\n \"%Oy\": \"%y\",\n };\n for (var rule in EXPANSION_RULES_1) {\n pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_1[rule]);\n }\n var WEEKDAYS = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ];\n var MONTHS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n function leadingSomething(value, digits, character) {\n var str = typeof value == \"number\" ? value.toString() : value || \"\";\n while (str.length < digits) {\n str = character[0] + str;\n }\n return str;\n }\n function leadingNulls(value, digits) {\n return leadingSomething(value, digits, \"0\");\n }\n function compareByDay(date1, date2) {\n function sgn(value) {\n return value < 0 ? -1 : value > 0 ? 1 : 0;\n }\n var compare;\n if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {\n if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {\n compare = sgn(date1.getDate() - date2.getDate());\n }\n }\n return compare;\n }\n function getFirstWeekStartDate(janFourth) {\n switch (janFourth.getDay()) {\n case 0:\n return new Date(janFourth.getFullYear() - 1, 11, 29);\n\n case 1:\n return janFourth;\n\n case 2:\n return new Date(janFourth.getFullYear(), 0, 3);\n\n case 3:\n return new Date(janFourth.getFullYear(), 0, 2);\n\n case 4:\n return new Date(janFourth.getFullYear(), 0, 1);\n\n case 5:\n return new Date(janFourth.getFullYear() - 1, 11, 31);\n\n case 6:\n return new Date(janFourth.getFullYear() - 1, 11, 30);\n }\n }\n function getWeekBasedYear(date) {\n var thisDate = __addDays(\n new Date(date.tm_year + 1900, 0, 1),\n date.tm_yday\n );\n var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);\n var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);\n var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);\n var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);\n if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {\n if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {\n return thisDate.getFullYear() + 1;\n }\n return thisDate.getFullYear();\n }\n return thisDate.getFullYear() - 1;\n }\n var EXPANSION_RULES_2 = {\n \"%a\": function (date) {\n return WEEKDAYS[date.tm_wday].substring(0, 3);\n },\n \"%A\": function (date) {\n return WEEKDAYS[date.tm_wday];\n },\n \"%b\": function (date) {\n return MONTHS[date.tm_mon].substring(0, 3);\n },\n \"%B\": function (date) {\n return MONTHS[date.tm_mon];\n },\n \"%C\": function (date) {\n var year = date.tm_year + 1900;\n return leadingNulls((year / 100) | 0, 2);\n },\n \"%d\": function (date) {\n return leadingNulls(date.tm_mday, 2);\n },\n \"%e\": function (date) {\n return leadingSomething(date.tm_mday, 2, \" \");\n },\n \"%g\": function (date) {\n return getWeekBasedYear(date).toString().substring(2);\n },\n \"%G\": function (date) {\n return getWeekBasedYear(date);\n },\n \"%H\": function (date) {\n return leadingNulls(date.tm_hour, 2);\n },\n \"%I\": function (date) {\n var twelveHour = date.tm_hour;\n if (twelveHour == 0) {\n twelveHour = 12;\n } else if (twelveHour > 12) {\n twelveHour -= 12;\n }\n return leadingNulls(twelveHour, 2);\n },\n \"%j\": function (date) {\n return leadingNulls(\n date.tm_mday +\n __arraySum(\n __isLeapYear(date.tm_year + 1900)\n ? __MONTH_DAYS_LEAP\n : __MONTH_DAYS_REGULAR,\n date.tm_mon - 1\n ),\n 3\n );\n },\n \"%m\": function (date) {\n return leadingNulls(date.tm_mon + 1, 2);\n },\n \"%M\": function (date) {\n return leadingNulls(date.tm_min, 2);\n },\n \"%n\": function () {\n return \"\\n\";\n },\n \"%p\": function (date) {\n if (date.tm_hour >= 0 && date.tm_hour < 12) {\n return \"AM\";\n }\n return \"PM\";\n },\n \"%S\": function (date) {\n return leadingNulls(date.tm_sec, 2);\n },\n \"%t\": function () {\n return \"\\t\";\n },\n \"%u\": function (date) {\n return date.tm_wday || 7;\n },\n \"%U\": function (date) {\n var days = date.tm_yday + 7 - date.tm_wday;\n return leadingNulls(Math.floor(days / 7), 2);\n },\n \"%V\": function (date) {\n var val = Math.floor((date.tm_yday + 7 - ((date.tm_wday + 6) % 7)) / 7);\n if ((date.tm_wday + 371 - date.tm_yday - 2) % 7 <= 2) {\n val++;\n }\n if (!val) {\n val = 52;\n var dec31 = (date.tm_wday + 7 - date.tm_yday - 1) % 7;\n if (\n dec31 == 4 ||\n (dec31 == 5 && __isLeapYear((date.tm_year % 400) - 1))\n ) {\n val++;\n }\n } else if (val == 53) {\n var jan1 = (date.tm_wday + 371 - date.tm_yday) % 7;\n if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date.tm_year))) {\n val = 1;\n }\n }\n return leadingNulls(val, 2);\n },\n \"%w\": function (date) {\n return date.tm_wday;\n },\n \"%W\": function (date) {\n var days = date.tm_yday + 7 - ((date.tm_wday + 6) % 7);\n return leadingNulls(Math.floor(days / 7), 2);\n },\n \"%y\": function (date) {\n return (date.tm_year + 1900).toString().substring(2);\n },\n \"%Y\": function (date) {\n return date.tm_year + 1900;\n },\n \"%z\": function (date) {\n var off = date.tm_gmtoff;\n var ahead = off >= 0;\n off = Math.abs(off) / 60;\n off = (off / 60) * 100 + (off % 60);\n return (ahead ? \"+\" : \"-\") + String(\"0000\" + off).slice(-4);\n },\n \"%Z\": function (date) {\n return date.tm_zone;\n },\n \"%%\": function () {\n return \"%\";\n },\n };\n pattern = pattern.replace(/%%/g, \"\\0\\0\");\n for (var rule in EXPANSION_RULES_2) {\n if (pattern.includes(rule)) {\n pattern = pattern.replace(\n new RegExp(rule, \"g\"),\n EXPANSION_RULES_2[rule](date)\n );\n }\n }\n pattern = pattern.replace(/\\0\\0/g, \"%\");\n var bytes = intArrayFromString(pattern, false);\n if (bytes.length > maxsize) {\n return 0;\n }\n writeArrayToMemory(bytes, s);\n return bytes.length - 1;\n }\n\n function _strftime_l(s, maxsize, format, tm) {\n return _strftime(s, maxsize, format, tm);\n }\n\n InternalError = Module.InternalError = extendError(Error, \"InternalError\");\n\n embind_init_charCodes();\n\n BindingError = Module.BindingError = extendError(Error, \"BindingError\");\n\n init_ClassHandle();\n\n init_embind();\n\n init_RegisteredPointer();\n\n UnboundTypeError = Module.UnboundTypeError = extendError(\n Error,\n \"UnboundTypeError\"\n );\n\n init_emval();\n\n function intArrayFromString(stringy, dontAddNull, length) {\n var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;\n var u8array = new Array(len);\n var numBytesWritten = stringToUTF8Array(\n stringy,\n u8array,\n 0,\n u8array.length\n );\n if (dontAddNull) {\n u8array.length = numBytesWritten;\n }\n return u8array;\n }\n\n var asmLibraryArg = {\n __assert_fail: ___assert_fail,\n __cxa_allocate_exception: ___cxa_allocate_exception,\n __cxa_rethrow: ___cxa_rethrow,\n __cxa_throw: ___cxa_throw,\n __syscall_faccessat: ___syscall_faccessat,\n __syscall_fcntl64: ___syscall_fcntl64,\n __syscall_fstat64: ___syscall_fstat64,\n __syscall_getcwd: ___syscall_getcwd,\n __syscall_ioctl: ___syscall_ioctl,\n __syscall_lstat64: ___syscall_lstat64,\n __syscall_newfstatat: ___syscall_newfstatat,\n __syscall_openat: ___syscall_openat,\n __syscall_renameat: ___syscall_renameat,\n __syscall_rmdir: ___syscall_rmdir,\n __syscall_stat64: ___syscall_stat64,\n __syscall_unlinkat: ___syscall_unlinkat,\n _embind_finalize_value_object: __embind_finalize_value_object,\n _embind_register_bigint: __embind_register_bigint,\n _embind_register_bool: __embind_register_bool,\n _embind_register_class: __embind_register_class,\n _embind_register_class_constructor: __embind_register_class_constructor,\n _embind_register_class_function: __embind_register_class_function,\n _embind_register_emval: __embind_register_emval,\n _embind_register_float: __embind_register_float,\n _embind_register_integer: __embind_register_integer,\n _embind_register_memory_view: __embind_register_memory_view,\n _embind_register_smart_ptr: __embind_register_smart_ptr,\n _embind_register_std_string: __embind_register_std_string,\n _embind_register_std_wstring: __embind_register_std_wstring,\n _embind_register_value_object: __embind_register_value_object,\n _embind_register_value_object_field: __embind_register_value_object_field,\n _embind_register_void: __embind_register_void,\n _emscripten_date_now: __emscripten_date_now,\n _emscripten_get_now_is_monotonic: __emscripten_get_now_is_monotonic,\n _emval_call: __emval_call,\n _emval_decref: __emval_decref,\n _emval_incref: __emval_incref,\n _emval_take_value: __emval_take_value,\n _localtime_js: __localtime_js,\n _mmap_js: __mmap_js,\n _munmap_js: __munmap_js,\n _tzset_js: __tzset_js,\n abort: _abort,\n emscripten_asm_const_int: _emscripten_asm_const_int,\n emscripten_get_heap_max: _emscripten_get_heap_max,\n emscripten_get_now: _emscripten_get_now,\n emscripten_memcpy_big: _emscripten_memcpy_big,\n emscripten_resize_heap: _emscripten_resize_heap,\n environ_get: _environ_get,\n environ_sizes_get: _environ_sizes_get,\n exit: _exit,\n fd_close: _fd_close,\n fd_read: _fd_read,\n fd_seek: _fd_seek,\n fd_write: _fd_write,\n getentropy: _getentropy,\n memory: wasmMemory,\n pclose: _pclose,\n setTempRet0: _setTempRet0,\n strftime_l: _strftime_l,\n };\n\n var asm = createWasm();\n\n var calledRun;\n\n function ExitStatus(status) {\n this.name = \"ExitStatus\";\n this.message = \"Program terminated with exit(\" + status + \")\";\n this.status = status;\n }\n\n dependenciesFulfilled = function runCaller() {\n if (!calledRun) {\n run();\n }\n if (!calledRun) {\n dependenciesFulfilled = runCaller;\n }\n };\n\n function run(args) {\n args = args || arguments_;\n if (runDependencies > 0) {\n return;\n }\n preRun();\n if (runDependencies > 0) {\n return;\n }\n function doRun() {\n if (calledRun) {\n return;\n }\n calledRun = true;\n Module.calledRun = true;\n if (ABORT) {\n return;\n }\n initRuntime();\n if (Module.onRuntimeInitialized) {\n Module.onRuntimeInitialized();\n }\n postRun();\n }\n if (Module.setStatus) {\n Module.setStatus(\"Running...\");\n setTimeout(function () {\n setTimeout(function () {\n Module.setStatus(\"\");\n }, 1);\n doRun();\n }, 1);\n } else {\n doRun();\n }\n }\n\n Module.run = run;\n\n function exit(status, implicit) {\n EXITSTATUS = status;\n procExit(status);\n }\n\n function procExit(code) {\n EXITSTATUS = code;\n if (!keepRuntimeAlive()) {\n if (Module.onExit) {\n Module.onExit(code);\n }\n ABORT = true;\n }\n quit_(code, new ExitStatus(code));\n }\n\n if (Module.preInit) {\n if (typeof Module.preInit == \"function\") {\n Module.preInit = [Module.preInit];\n }\n while (Module.preInit.length) {\n Module.preInit.pop()();\n }\n }\n\n run();\n\n /* Use an optimized gemm implementation if available, otherwise use the fallback\n * implementation.\n */\n function createWasmGemm() {\n // A map of expected gemm function to the corresponding fallback gemm function names.\n const GEMM_TO_FALLBACK_FUNCTIONS_MAP = {\n int8_prepare_a: \"int8PrepareAFallback\",\n int8_prepare_b: \"int8PrepareBFallback\",\n int8_prepare_b_from_transposed: \"int8PrepareBFromTransposedFallback\",\n int8_prepare_b_from_quantized_transposed:\n \"int8PrepareBFromQuantizedTransposedFallback\",\n int8_prepare_bias: \"int8PrepareBiasFallback\",\n int8_multiply_and_add_bias: \"int8MultiplyAndAddBiasFallback\",\n int8_select_columns_of_b: \"int8SelectColumnsOfBFallback\",\n };\n\n // Name of the optimized gemm implementation.\n const OPTIMIZED_GEMM = \"mozIntGemm\";\n\n const optimizedGemmModule = WebAssembly[OPTIMIZED_GEMM];\n if (!optimizedGemmModule) {\n return fallbackGemm(GEMM_TO_FALLBACK_FUNCTIONS_MAP);\n }\n\n const optimizedGemmModuleExports = new WebAssembly.Instance(\n optimizedGemmModule(),\n { \"\": { memory: wasmMemory } }\n ).exports;\n for (let key in GEMM_TO_FALLBACK_FUNCTIONS_MAP) {\n if (!optimizedGemmModuleExports[key]) {\n return fallbackGemm(GEMM_TO_FALLBACK_FUNCTIONS_MAP);\n }\n }\n Module.print(`Using optimized gemm (${OPTIMIZED_GEMM}) implementation`);\n return optimizedGemmModuleExports;\n }\n\n // Return the fallback gemm implementation.\n function fallbackGemm(gemmToFallbackFunctionsMap) {\n // The fallback gemm implementation\n const FALLBACK_GEMM = \"asm\";\n\n let fallbackGemmModuleExports = {};\n for (let key in gemmToFallbackFunctionsMap) {\n fallbackGemmModuleExports[key] = (...a) =>\n Module[FALLBACK_GEMM][gemmToFallbackFunctionsMap[key]](...a);\n }\n Module.print(`Using fallback gemm implementation`);\n return fallbackGemmModuleExports;\n }\n\n return Module;\n}\n\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = loadBergamot;\n}\n",
|
|
15
15
|
"var loadCLD2=(()=>{var _scriptName=globalThis.document?.currentScript?.src;return async function(moduleArg={}){var moduleRtn;function ba(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}function h(a){var b=\"undefined\"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];if(b)return b.call(a);if(\"number\"==typeof a.length)return{next:ba(a)};throw Error(String(a)+\" is not an iterable or ArrayLike\");}var l=\"function\"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};\nfunction ca(a){a=[\"object\"==typeof globalThis&&globalThis,a,\"object\"==typeof window&&window,\"object\"==typeof self&&self,\"object\"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error(\"Cannot find global object\");}var n=ca(this);function r(a,b){if(b)a:{var c=n;a=a.split(\".\");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&l(c,a,{configurable:!0,writable:!0,value:b})}}\nfunction t(){this.H=!1;this.C=null;this.D=void 0;this.A=1;this.K=this.G=0;this.F=null}function u(a){if(a.H)throw new TypeError(\"Generator is already running\");a.H=!0}t.prototype.I=function(a){this.D=a};function v(a,b){a.F={S:b,aa:!0};a.A=a.G||a.K}t.prototype.return=function(a){this.F={return:a};this.A=this.K};function w(a,b,c){a.A=c;return{value:b}}function y(a){a.G=0;var b=a.F.S;a.F=null;return b}function da(a){this.A=new t;this.C=a}\nfunction ea(a,b){u(a.A);var c=a.A.C;if(c)return z(a,\"return\"in c?c[\"return\"]:function(d){return{value:d,done:!0}},b,a.A.return);a.A.return(b);return C(a)}function z(a,b,c,d){try{var e=b.call(a.A.C,c);if(!(e instanceof Object))throw new TypeError(\"Iterator result \"+e+\" is not an object\");if(!e.done)return a.A.H=!1,e;var g=e.value}catch(f){return a.A.C=null,v(a.A,f),C(a)}a.A.C=null;d.call(a.A,g);return C(a)}\nfunction C(a){for(;a.A.A;)try{var b=a.C(a.A);if(b)return a.A.H=!1,{value:b.value,done:!1}}catch(c){a.A.D=void 0,v(a.A,c)}a.A.H=!1;if(a.A.F){b=a.A.F;a.A.F=null;if(b.aa)throw b.S;return{value:b.return,done:!0}}return{value:void 0,done:!0}}\nfunction fa(a){this.next=function(b){u(a.A);a.A.C?b=z(a,a.A.C.next,b,a.A.I):(a.A.I(b),b=C(a));return b};this.throw=function(b){u(a.A);a.A.C?b=z(a,a.A.C[\"throw\"],b,a.A.I):(v(a.A,b),b=C(a));return b};this.return=function(b){return ea(a,b)};this[Symbol.iterator]=function(){return this}}function ha(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function g(f){f.done?d(f.value):Promise.resolve(f.value).then(b,c).then(g,e)}g(a.next())})}\nfunction D(a){return ha(new fa(new da(a)))}r(\"Symbol\",function(a){function b(g){if(this instanceof b)throw new TypeError(\"Symbol is not a constructor\");return new c(d+(g||\"\")+\"_\"+e++,g)}function c(g,f){this.A=g;l(this,\"description\",{configurable:!0,writable:!0,value:f})}if(a)return a;c.prototype.toString=function(){return this.A};var d=\"jscomp_symbol_\"+(1E9*Math.random()>>>0)+\"_\",e=0;return b});\nr(\"Symbol.iterator\",function(a){if(a)return a;a=Symbol(\"Symbol.iterator\");for(var b=\"Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array\".split(\" \"),c=0;c<b.length;c++){var d=n[b[c]];\"function\"===typeof d&&\"function\"!=typeof d.prototype[a]&&l(d.prototype,a,{configurable:!0,writable:!0,value:function(){return ia(ba(this))}})}return a});function ia(a){a={next:a};a[Symbol.iterator]=function(){return this};return a}\nr(\"Promise\",function(a){function b(f){this.C=0;this.D=void 0;this.A=[];this.I=!1;var k=this.F();try{f(k.resolve,k.reject)}catch(m){k.reject(m)}}function c(){this.A=null}function d(f){return f instanceof b?f:new b(function(k){k(f)})}if(a)return a;c.prototype.C=function(f){if(null==this.A){this.A=[];var k=this;this.D(function(){k.G()})}this.A.push(f)};var e=n.setTimeout;c.prototype.D=function(f){e(f,0)};c.prototype.G=function(){for(;this.A&&this.A.length;){var f=this.A;this.A=[];for(var k=0;k<f.length;++k){var m=\nf[k];f[k]=null;try{m()}catch(p){this.F(p)}}}this.A=null};c.prototype.F=function(f){this.D(function(){throw f;})};b.prototype.F=function(){function f(p){return function(q){m||(m=!0,p.call(k,q))}}var k=this,m=!1;return{resolve:f(this.W),reject:f(this.G)}};b.prototype.W=function(f){if(f===this)this.G(new TypeError(\"A Promise cannot resolve to itself\"));else if(f instanceof b)this.Y(f);else{a:switch(typeof f){case \"object\":var k=null!=f;break a;case \"function\":k=!0;break a;default:k=!1}k?this.V(f):this.H(f)}};\nb.prototype.V=function(f){var k=void 0;try{k=f.then}catch(m){this.G(m);return}\"function\"==typeof k?this.Z(k,f):this.H(f)};b.prototype.G=function(f){this.K(2,f)};b.prototype.H=function(f){this.K(1,f)};b.prototype.K=function(f,k){if(0!=this.C)throw Error(\"Cannot settle(\"+f+\", \"+k+\"): Promise already settled in state\"+this.C);this.C=f;this.D=k;2===this.C&&this.X();this.T()};b.prototype.X=function(){var f=this;e(function(){if(f.U()){var k=n.console;\"undefined\"!==typeof k&&k.error(f.D)}},1)};b.prototype.U=\nfunction(){if(this.I)return!1;var f=n.CustomEvent,k=n.Event,m=n.dispatchEvent;if(\"undefined\"===typeof m)return!0;\"function\"===typeof f?f=new f(\"unhandledrejection\",{cancelable:!0}):\"function\"===typeof k?f=new k(\"unhandledrejection\",{cancelable:!0}):(f=n.document.createEvent(\"CustomEvent\"),f.initCustomEvent(\"unhandledrejection\",!1,!0,f));f.promise=this;f.reason=this.D;return m(f)};b.prototype.T=function(){if(null!=this.A){for(var f=0;f<this.A.length;++f)g.C(this.A[f]);this.A=null}};var g=new c;b.prototype.Y=\nfunction(f){var k=this.F();f.O(k.resolve,k.reject)};b.prototype.Z=function(f,k){var m=this.F();try{f.call(k,m.resolve,m.reject)}catch(p){m.reject(p)}};b.prototype.then=function(f,k){function m(x,A){return\"function\"==typeof x?function(Z){try{p(x(Z))}catch(aa){q(aa)}}:A}var p,q,B=new b(function(x,A){p=x;q=A});this.O(m(f,p),m(k,q));return B};b.prototype.catch=function(f){return this.then(void 0,f)};b.prototype.O=function(f,k){function m(){switch(p.C){case 1:f(p.D);break;case 2:k(p.D);break;default:throw Error(\"Unexpected state: \"+\np.C);}}var p=this;null==this.A?g.C(m):this.A.push(m);this.I=!0};b.resolve=d;b.reject=function(f){return new b(function(k,m){m(f)})};b.race=function(f){return new b(function(k,m){for(var p=h(f),q=p.next();!q.done;q=p.next())d(q.value).O(k,m)})};b.all=function(f){var k=h(f),m=k.next();return m.done?d([]):new b(function(p,q){function B(Z){return function(aa){x[Z]=aa;A--;0==A&&p(x)}}var x=[],A=0;do x.push(void 0),A++,d(m.value).O(B(x.length-1),q),m=k.next();while(!m.done)})};return b});\nr(\"globalThis\",function(a){return a||n});function ja(a,b,c){if(null==a)throw new TypeError(\"The 'this' value for String.prototype.\"+c+\" must not be null or undefined\");if(b instanceof RegExp)throw new TypeError(\"First argument to String.prototype.\"+c+\" must not be a regular expression\");return a+\"\"}\nr(\"String.prototype.startsWith\",function(a){return a?a:function(b,c){var d=ja(this,b,\"startsWith\"),e=d.length,g=b.length;c=Math.max(0,Math.min(c|0,d.length));for(var f=0;f<g&&c<e;)if(d[c++]!=b[f++])return!1;return f>=g}});r(\"String.prototype.codePointAt\",function(a){return a?a:function(b){var c=ja(this,null,\"codePointAt\"),d=c.length;b=Number(b)||0;if(0<=b&&b<d){b|=0;var e=c.charCodeAt(b);if(55296>e||56319<e||b+1===d)return e;b=c.charCodeAt(b+1);return 56320>b||57343<b?e:1024*(e-55296)+b+9216}}});\nfunction ka(a,b){a instanceof String&&(a+=\"\");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var g=c++;return{value:b(g,a[g]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[Symbol.iterator]=function(){return e};return e}r(\"Array.prototype.keys\",function(a){return a?a:function(){return ka(this,function(b){return b})}});\nvar E=moduleArg,la=!!globalThis.window,ma=!!globalThis.WorkerGlobalScope,na,oa,pa,qa=(null==(na=globalThis.process)?void 0:null==(oa=na.versions)?void 0:oa.node)&&\"renderer\"!=(null==(pa=globalThis.process)?void 0:pa.type);\"undefined\"!=typeof __filename?_scriptName=__filename:ma&&(_scriptName=self.location.href);var F=\"\",ra,G;\nif(qa){var fs=require(\"fs\");F=__dirname+\"/\";G=function(a){a=H(a)?new URL(a):a;return fs.readFileSync(a)};ra=function(a){var b=void 0===b?!0:b;var c;return D(function(d){a=H(a)?new URL(a):a;c=fs.readFileSync(a,b?void 0:\"utf8\");return d.return(c)})};process.argv.slice(2)}else if(la||ma){try{F=(new URL(\".\",_scriptName)).href}catch(a){}ma&&(G=function(a){var b=new XMLHttpRequest;b.open(\"GET\",a,!1);b.responseType=\"arraybuffer\";b.send(null);return new Uint8Array(b.response)});ra=function(a){var b;return D(function(c){if(1==\nc.A)return H(a)?c.return(new Promise(function(d,e){var g=new XMLHttpRequest;g.open(\"GET\",a,!0);g.responseType=\"arraybuffer\";g.onload=function(){200==g.status||0==g.status&&g.response?d(g.response):e(g.status)};g.onerror=e;g.send(null)})):w(c,fetch(a,{credentials:\"same-origin\"}),2);b=c.D;if(b.ok)return c.return(b.arrayBuffer());throw Error(b.status+\" : \"+b.url);})}}var sa=console.log.bind(console),I=console.error.bind(console),J,ta=!1;function H(a){return a.startsWith(\"file://\")}\nvar ua,va,wa,K,L,xa=!1;function ya(){var a=M.buffer;wa=new Int8Array(a);new Int16Array(a);K=new Uint8Array(a);new Uint16Array(a);new Int32Array(a);L=new Uint32Array(a);new Float32Array(a);new Float64Array(a);new BigInt64Array(a);new BigUint64Array(a)}function N(a){var b;null==(b=E.onAbort)||b.call(E,a);a=\"Aborted(\"+a+\")\";I(a);ta=!0;a=new WebAssembly.RuntimeError(a+\". Build with -sASSERTIONS for more info.\");var c;null==(c=va)||c(a);throw a;}var O;\nfunction za(a){var b;return D(function(c){switch(c.A){case 1:if(J){c.A=2;break}c.G=3;return w(c,ra(a),5);case 5:return b=c.D,c.return(new Uint8Array(b));case 3:y(c);case 2:var d=c.return;if(a==O&&J)var e=new Uint8Array(J);else if(G)e=G(a);else throw\"both async and sync fetching of the wasm failed\";return d.call(c,e)}})}\nfunction Aa(a,b){var c,d,e;return D(function(g){switch(g.A){case 1:return g.G=2,w(g,za(a),4);case 4:return c=g.D,w(g,WebAssembly.instantiate(c,b),5);case 5:return d=g.D,g.return(d);case 2:e=y(g),I(\"failed to asynchronously prepare wasm: \"+e),N(e),g.A=0}})}\nfunction Ba(a){var b=J,c=O,d,e,g;return D(function(f){switch(f.A){case 1:if(b||H(c)||qa){f.A=2;break}f.G=3;d=fetch(c,{credentials:\"same-origin\"});return w(f,WebAssembly.instantiateStreaming(d,a),5);case 5:return e=f.D,f.return(e);case 3:g=y(f),I(\"wasm streaming compile failed: \"+g),I(\"falling back to ArrayBuffer instantiation\");case 2:return f.return(Aa(c,a))}})}function Ca(a){for(;0<a.length;)a.shift()(E)}var Da=[],Ea=[];function Fa(){var a=E.preRun.shift();Ea.push(a)}\nfunction Ga(a){this.B=a-24}var Ha=0,Ia=0,Ja=[null,[],[]],Ka=globalThis.TextDecoder&&new TextDecoder;\nfunction La(a,b){b=void 0===b?0:b;var c=b;for(var d=c+void 0;a[c]&&!(c>=d);)++c;if(16<c-b&&a.buffer&&Ka)return Ka.decode(a.subarray(b,c));for(d=\"\";b<c;){var e=a[b++];if(e&128){var g=a[b++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|g);else{var f=a[b++]&63;e=224==(e&240)?(e&15)<<12|g<<6|f:(e&7)<<18|g<<12|f<<6|a[b++]&63;65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d}function Ma(a){return a?La(K,a):\"\"}\nvar Na=[];E.print&&(sa=E.print);E.printErr&&(I=E.printErr);E.wasmBinary&&(J=E.wasmBinary);if(E.preInit)for(\"function\"==typeof E.preInit&&(E.preInit=[E.preInit]);0<E.preInit.length;)E.preInit.shift()();\nvar Oa,Pa,Qa,Ra,Sa,Ta,Ua,Va,Wa,Xa,Ya,Za,$a,ab,M,bb={a:function(a,b,c){var d=new Ga(a);L[d.B+16>>2]=0;L[d.B+4>>2]=b;L[d.B+8>>2]=c;Ha=a;Ia++;throw Ha;},c:function(){return N(\"\")},e:function(a,b){throw\"Array index \"+a+\" out of bounds: [0,\"+b+\")\";},d:function(a){var b=K.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-M.buffer.byteLength+65535)/65536|0;try{M.grow(d);ya();var e=1;break a}catch(g){}e=\nvoid 0}if(e)return!0}return!1},b:function(a,b,c,d){for(var e=0,g=0;g<c;g++){var f=L[b>>2],k=L[b+4>>2];b+=8;for(var m=0;m<k;m++){var p=a,q=K[f+m],B=Ja[p];0===q||10===q?((1===p?sa:I)(La(B)),B.length=0):B.push(q)}e+=k}L[d>>2]=e;return 0}},P;\nP=await (function(){function a(e){e=P=e.exports;E._webidl_free=e.h;E._webidl_malloc=e.i;Oa=E._emscripten_bind_Language_getLanguageCode_0=e.j;Pa=E._emscripten_bind_Language___destroy___0=e.k;Qa=E._emscripten_bind_VoidPtr___destroy___0=e.l;Ra=E._emscripten_bind_LanguageGuess_getPercent_0=e.m;Sa=E._emscripten_bind_LanguageGuess_getLanguageCode_0=e.n;Ta=E._emscripten_bind_LanguageGuess___destroy___0=e.o;Ua=E._emscripten_bind_LanguageInfo_detectLanguageWithLength_3=e.p;Va=E._emscripten_bind_LanguageInfo_detectLanguageWithLength_6=\ne.q;Wa=E._emscripten_bind_LanguageInfo_detectLanguage_2=e.r;Xa=E._emscripten_bind_LanguageInfo_detectLanguage_5=e.s;Ya=E._emscripten_bind_LanguageInfo_getIsReliable_0=e.t;Za=E._emscripten_bind_LanguageInfo_getLanguageCode_0=e.u;$a=E._emscripten_bind_LanguageInfo_get_languages_1=e.v;ab=E._emscripten_bind_LanguageInfo___destroy___0=e.w;M=e.f;ya();return P}var b,c,d;return D(function(e){if(1==e.A){b={a:bb};if(E.instantiateWasm)return e.return(new Promise(function(g){E.instantiateWasm(b,function(f,k){g(a(f,\nk))})}));null!=O||(O=E.locateFile?E.locateFile(\"cld2.wasm\",F):F+\"cld2.wasm\");return w(e,Ba(b),2)}c=e.D;d=a(c.instance);return e.return(d)})}());\n(function(){function a(){E.calledRun=!0;if(!ta){xa=!0;Ca(Na);P.g();var b;null==(b=ua)||b(E);var c;null==(c=E.onRuntimeInitialized)||c.call(E);if(E.postRun)for(\"function\"==typeof E.postRun&&(E.postRun=[E.postRun]);E.postRun.length;)b=E.postRun.shift(),Da.push(b);Ca(Da)}}if(E.preRun)for(\"function\"==typeof E.preRun&&(E.preRun=[E.preRun]);E.preRun.length;)Fa();Ca(Ea);E.setStatus?(E.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){return E.setStatus(\"\")},1);a()},1)):a()})();\nfunction Q(){}Q.prototype=Object.create(Q.prototype);Q.prototype.constructor=Q;Q.prototype.J=Q;Q.L={};E.WrapperObject=Q;function cb(a){return(a||Q).L}E.getCache=cb;function R(a,b){var c=cb(b),d=c[a];if(d)return d;d=Object.create((b||Q).prototype);d.B=a;return c[a]=d}E.wrapPointer=R;E.castObject=function(a,b){return R(a.B,b)};E.NULL=R(0);E.destroy=function(a){if(!a.__destroy__)throw\"Error: Cannot destroy object. (Did you create it yourself?)\";a.__destroy__();delete cb(a.J)[a.B]};\nE.compare=function(a,b){return a.B===b.B};E.getPointer=function(a){return a.B};E.getClass=function(a){return a.J};\nvar S={buffer:0,size:0,N:0,R:[],M:0,P:function(){if(S.M){for(var a=0;a<S.R.length;a++)E._webidl_free(S.R[a]);S.R.length=0;E._webidl_free(S.buffer);S.buffer=0;S.size+=S.M;S.M=0}S.buffer||(S.size+=128,S.buffer=E._webidl_malloc(S.size),S.buffer||N());S.N=0},alloc:function(a,b){S.buffer||N();a=a.length*b.BYTES_PER_ELEMENT;a=8*Math.ceil(a/8);S.N+a>=S.size?(0<a||N(),S.M+=a,b=E._webidl_malloc(a),S.R.push(b)):(b=S.buffer+S.N,S.N+=a);return b}};\nfunction T(a){if(\"string\"===typeof a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}b=Array(b+1);d=b.length;c=0;if(0<d){d=c+d-1;for(var e=0;e<a.length;++e){var g=a.codePointAt(e);if(127>=g){if(c>=d)break;b[c++]=g}else if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6;b[c++]=128|g&63}else if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12;b[c++]=128|g>>6&63;b[c++]=128|g&63}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63;b[c++]=128|g>>\n6&63;b[c++]=128|g&63;e++}}b[c]=0}a=S.alloc(b,wa);for(c=0;c<b.length;c++)wa[a+c]=b[c];return a}return a}function U(){throw\"cannot construct a Language, no constructor in IDL\";}U.prototype=Object.create(Q.prototype);U.prototype.constructor=U;U.prototype.J=U;U.L={};E.Language=U;U.prototype.getLanguageCode=function(){return Ma(Oa(this.B))};U.prototype.__destroy__=function(){Pa(this.B)};function V(){throw\"cannot construct a VoidPtr, no constructor in IDL\";}V.prototype=Object.create(Q.prototype);\nV.prototype.constructor=V;V.prototype.J=V;V.L={};E.VoidPtr=V;V.prototype.__destroy__=function(){Qa(this.B)};function W(){throw\"cannot construct a LanguageGuess, no constructor in IDL\";}W.prototype=Object.create(U.prototype);W.prototype.constructor=W;W.prototype.J=W;W.L={};E.LanguageGuess=W;W.prototype.getPercent=function(){return Ra(this.B)};W.prototype.getLanguageCode=function(){return Ma(Sa(this.B))};W.prototype.__destroy__=function(){Ta(this.B)};\nfunction X(){throw\"cannot construct a LanguageInfo, no constructor in IDL\";}X.prototype=Object.create(U.prototype);X.prototype.constructor=X;X.prototype.J=X;X.L={};E.LanguageInfo=X;\nX.prototype.detectLanguageWithLength=function(a,b,c,d,e,g){S.P();a=a&&\"object\"===typeof a?a.B:T(a);b&&\"object\"===typeof b&&(b=b.B);c&&\"object\"===typeof c&&(c=c.B);d=d&&\"object\"===typeof d?d.B:T(d);e&&\"object\"===typeof e&&(e=e.B);g=g&&\"object\"===typeof g?g.B:T(g);return void 0===d?R(Ua(a,b,c),X):void 0===e?R(_emscripten_bind_LanguageInfo_detectLanguageWithLength_4(a,b,c,d),X):void 0===g?R(_emscripten_bind_LanguageInfo_detectLanguageWithLength_5(a,b,c,d,e),X):R(Va(a,b,c,d,e,g),X)};\nX.prototype.detectLanguage=function(a,b,c,d,e){S.P();a=a&&\"object\"===typeof a?a.B:T(a);b&&\"object\"===typeof b&&(b=b.B);c=c&&\"object\"===typeof c?c.B:T(c);d&&\"object\"===typeof d&&(d=d.B);e=e&&\"object\"===typeof e?e.B:T(e);return void 0===c?R(Wa(a,b),X):void 0===d?R(_emscripten_bind_LanguageInfo_detectLanguage_3(a,b,c),X):void 0===e?R(_emscripten_bind_LanguageInfo_detectLanguage_4(a,b,c,d),X):R(Xa(a,b,c,d,e),X)};X.prototype.getIsReliable=function(){return!!Ya(this.B)};X.prototype.getLanguageCode=function(){return Ma(Za(this.B))};\nX.prototype.get_languages=X.prototype.$=function(a){var b=this.B;a&&\"object\"===typeof a&&(a=a.B);return R($a(b,a),W)};Object.defineProperty(X.prototype,\"languages\",{get:X.prototype.$});X.prototype.__destroy__=function(){ab(this.B)};S.alloc=S.alloc.bind(S);S.P=S.P.bind(S);\nfor(var Y={ISO_8859_1:0,ISO_8859_2:1,ISO_8859_3:2,ISO_8859_4:3,ISO_8859_5:4,ISO_8859_6:5,ISO_8859_7:6,ISO_8859_8:7,ISO_8859_9:8,ISO_8859_10:9,JAPANESE_EUC_JP:10,EUC_JP:10,JAPANESE_SHIFT_JIS:11,SHIFT_JIS:11,JAPANESE_JIS:12,JIS:12,CHINESE_BIG5:13,BIG5:13,CHINESE_GB:14,CHINESE_EUC_CN:15,EUC_CN:15,KOREAN_EUC_KR:16,EUC_KR:16,UNICODE_UNUSED:17,CHINESE_EUC_DEC:18,EUC_DEC:18,CHINESE_CNS:19,CNS:19,CHINESE_BIG5_CP950:20,BIG5_CP950:20,JAPANESE_CP932:21,CP932:21,UTF8:22,UNKNOWN_ENCODING:23,ASCII_7BIT:24,RUSSIAN_KOI8_R:25,\nKOI8_R:25,RUSSIAN_CP1251:26,CP1251:26,MSFT_CP1252:27,CP1252:27,RUSSIAN_KOI8_RU:28,KOI8_RU:28,MSFT_CP1250:29,CP1250:29,ISO_8859_15:30,MSFT_CP1254:31,CP1254:31,MSFT_CP1257:32,CP1257:32,ISO_8859_11:33,MSFT_CP874:34,CP874:34,MSFT_CP1256:35,CP1256:35,MSFT_CP1255:36,CP1255:36,ISO_8859_8_I:37,HEBREW_VISUAL:38,CZECH_CP852:39,CP852:39,CZECH_CSN_369103:40,CSN_369103:40,MSFT_CP1253:41,CP1253:41,RUSSIAN_CP866:42,CP866:42,ISO_8859_13:43,ISO_2022_KR:44,GBK:45,GB18030:46,BIG5_HKSCS:47,ISO_2022_CN:48,TSCII:49,TAMIL_MONO:50,\nTAMIL_BI:51,JAGRAN:52,MACINTOSH_ROMAN:53,UTF7:54,BHASKAR:55,HTCHANAKYA:56,UTF16BE:57,UTF16LE:58,UTF32BE:59,UTF32LE:60,BINARYENC:61,HZ_GB_2312:62,UTF8UTF8:63,TAM_ELANGO:64,TAM_LTTMBARANI:65,TAM_SHREE:66,TAM_TBOOMIS:67,TAM_TMNEWS:68,TAM_WEBTAMIL:69,KDDI_SHIFT_JIS:70,DOCOMO_SHIFT_JIS:71,SOFTBANK_SHIFT_JIS:72,KDDI_ISO_2022_JP:73,ISO_2022_JP:73,SOFTBANK_ISO_2022_JP:74},db=h(Object.keys(Y)),eb=db.next();!eb.done;eb=db.next()){var fb=eb.value;fb.includes(\"_\")&&(Y[fb.replace(/_/g,\"\")]=Y[fb])}\nE.Encodings=Y;xa?moduleRtn=E:moduleRtn=new Promise(function(a,b){ua=a;va=b});\n;return moduleRtn}})();if(typeof exports===\"object\"&&typeof module===\"object\"){module.exports=loadCLD2;module.exports.default=loadCLD2}else if(typeof define===\"function\"&&define[\"amd\"])define([],()=>loadCLD2);\n",
|
|
16
16
|
"import path from 'path';\nimport { fileURLToPath } from 'url';\nimport loadCLD2 from '@/lib/cld2/cld2.js';\nimport wasmPath from '@/lib/cld2/cld2.wasm' with { type: 'file' };\nimport * as logger from '@/logger/index.js';\nimport { readFile } from 'fs/promises';\n\nexport interface TextSegment {\n text: string;\n language: string;\n start: number;\n end: number;\n confidence: number;\n}\n\nconst DEFAULT_CONFIDENCE_THRESHOLD = 0.5;\nconst MAXIMUM_LANGUAGES_IN_ONE_TEXT = 2;\nconst MAX_DETECTION_BYTES = 512;\nconst MAX_FALLBACK_DETECTION_BYTES = 1024;\n\nlet cldModule: any = null;\nlet initPromise: Promise<void> | null = null;\n\nfunction sanitizeInput(text: string): string {\n let sanitized = text.replace(/\\0/g, '');\n sanitized = sanitized.replace(/[\\x01-\\x08\\x0B-\\x0C\\x0E-\\x1F\\x7F]/g, '');\n return sanitized;\n}\n\nfunction truncateByUtf8Bytes(text: string, maxBytes: number): string {\n const encoder = new TextEncoder();\n const bytes = encoder.encode(text);\n\n if (bytes.length <= maxBytes) {\n return text;\n }\n\n let truncated = bytes.slice(0, maxBytes);\n\n while (truncated.length > 0) {\n try {\n return new TextDecoder('utf-8', { fatal: true }).decode(truncated);\n } catch {\n truncated = truncated.slice(0, -1);\n }\n }\n\n return '';\n}\n\nfunction validateAndSanitizeInput(text: string, maxBytes: number = MAX_DETECTION_BYTES): string {\n if (!text || text.length === 0) {\n return text;\n }\n\n const sanitized = sanitizeInput(text);\n const truncated = truncateByUtf8Bytes(sanitized, maxBytes);\n\n if (truncated !== text) {\n logger.debug(\n `Input sanitized/truncated: ${text.length} → ${truncated.length} chars (limit: ${maxBytes})`\n );\n }\n\n return truncated;\n}\n\nfunction handleCldError(error: any, context?: {\n text?: string;\n operation?: string\n}) {\n const errStr = error.toString();\n if (errStr.includes('RuntimeError') || errStr.includes('memory access')) {\n logger.error('CLD2 crashed (RuntimeError), resetting module', {\n error: errStr,\n stack: error.stack,\n textLength: context?.text?.length,\n textPreview: context?.text?.substring(0, 100),\n operation: context?.operation\n });\n cldModule = null;\n initPromise = null;\n }\n}\n\nasync function initCLD(): Promise<void> {\n if (cldModule) return;\n\n if (initPromise) {\n return initPromise;\n }\n\n initPromise = (async () => {\n try {\n logger.debug('Initializing CLD2 language detector');\n\n const currentDir = path.dirname(fileURLToPath(import.meta.url));\n const absoluteWasmPath = path.resolve(currentDir, wasmPath);\n\n const wasmBuffer = await readFile(absoluteWasmPath);\n\n const module: any = await loadCLD2({\n print: (msg: string) => logger.debug(`[CLD2]: ${msg}`),\n printErr: (msg: string) => logger.error(`[CLD2 Error]: ${msg}`),\n wasmBinary: wasmBuffer,\n });\n\n if (module.LanguageInfo && module.LanguageInfo.prototype) {\n if (module.LanguageInfo.prototype.detectLanguage) {\n module.LanguageInfo.detectLanguage = module.LanguageInfo.prototype.detectLanguage;\n }\n if (module.LanguageInfo.prototype.detectLanguageWithLength) {\n module.LanguageInfo.detectLanguageWithLength = module.LanguageInfo.prototype.detectLanguageWithLength;\n }\n }\n\n cldModule = module;\n logger.debug('CLD2 language detector initialized');\n } catch (error) {\n logger.error(`Failed to initialize CLD2: ${error}`);\n throw error;\n }\n })();\n\n return initPromise;\n}\n\nfunction detectLanguageWithCLD(text: string, isHTML: boolean = false, maxBytes: number = MAX_DETECTION_BYTES) {\n if (!cldModule) {\n throw new Error('CLD2 module not initialized');\n }\n\n const validatedText = validateAndSanitizeInput(text, maxBytes);\n\n if (!validatedText) {\n logger.warn('Input validation resulted in empty text');\n return {\n language: 'un',\n confident: false,\n languages: [],\n percentScore: 0\n };\n }\n\n const LanguageInfo = cldModule.LanguageInfo;\n if (!LanguageInfo || !LanguageInfo.detectLanguage) {\n throw new Error('CLD2 LanguageInfo or detectLanguage not available');\n }\n\n const result = LanguageInfo.detectLanguage(validatedText, !isHTML);\n\n const languages = Array(3).fill(0).map((_, i) => {\n const lang = result.get_languages(i);\n return {\n languageCode: lang.getLanguageCode(),\n percent: lang.getPercent()\n };\n }).filter(l => l.languageCode !== 'un' || l.percent > 0);\n\n const output = {\n language: result.getLanguageCode(),\n confident: result.getIsReliable(),\n languages,\n percentScore: languages[0]?.percent || 0\n };\n\n cldModule.destroy(result);\n\n return output;\n}\n\nfunction bcp47Normalize(code: string): string {\n switch (code) {\n case 'zh':\n return 'zh-Hans';\n default:\n return code.toLowerCase();\n }\n}\n\nexport async function detectLanguage(text: string, maxBytes: number = MAX_DETECTION_BYTES): Promise<string> {\n if (!text) {\n return '';\n }\n\n await initCLD();\n\n try {\n const result = detectLanguageWithCLD(text, false, maxBytes);\n return bcp47Normalize(result.language);\n } catch (error) {\n logger.warn(`Language detection failed: ${error}`);\n handleCldError(error, { text, operation: 'detectLanguage' });\n return 'en';\n }\n}\n\nexport async function detectLanguageWithConfidence(\n text: string,\n minConfidence: number = DEFAULT_CONFIDENCE_THRESHOLD,\n maxBytes: number = MAX_DETECTION_BYTES\n): Promise<{ language: string; confidence: number }> {\n if (!text) {\n return { language: '', confidence: 0 };\n }\n\n await initCLD();\n\n try {\n const result = detectLanguageWithCLD(text, false, maxBytes);\n const confidence = result.percentScore / 100;\n\n if (confidence < minConfidence) {\n return { language: '', confidence };\n }\n\n return {\n language: bcp47Normalize(result.language),\n confidence\n };\n } catch (error) {\n logger.warn(`Language detection with confidence failed: ${error}`);\n handleCldError(error, { text, operation: 'detectLanguageWithConfidence' });\n return { language: 'en', confidence: 0 };\n }\n}\n\nfunction hasMixedScripts(text: string): boolean {\n let hasCJK = false;\n let hasLatin = false;\n\n for (const char of text) {\n const code = char.charCodeAt(0);\n\n if (\n (code >= 0x4e00 && code <= 0x9fff) ||\n (code >= 0x3040 && code <= 0x309f) ||\n (code >= 0x30a0 && code <= 0x30ff) ||\n (code >= 0xac00 && code <= 0xd7af)\n ) {\n hasCJK = true;\n } else if ((code >= 0x0041 && code <= 0x005a) || (code >= 0x0061 && code <= 0x007a)) {\n hasLatin = true;\n }\n\n if (hasCJK && hasLatin) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getScriptType(text: string): 'Latin' | 'CJK' | 'Mixed' | 'Other' {\n let hasCJK = false;\n let hasLatin = false;\n\n for (const char of text) {\n const code = char.charCodeAt(0);\n\n if (\n (code >= 0x4e00 && code <= 0x9fff) ||\n (code >= 0x3040 && code <= 0x309f) ||\n (code >= 0x30a0 && code <= 0x30ff) ||\n (code >= 0xac00 && code <= 0xd7af)\n ) {\n hasCJK = true;\n } else if ((code >= 0x0041 && code <= 0x005a) || (code >= 0x0061 && code <= 0x007a)) {\n hasLatin = true;\n }\n\n if (hasCJK && hasLatin) return 'Mixed';\n }\n\n if (hasCJK) return 'CJK';\n if (hasLatin) return 'Latin';\n return 'Other';\n}\n\nfunction isCJKLanguage(lang: string): boolean {\n return ['zh', 'zh-Hans', 'zh-Hant', 'ja', 'ko'].includes(lang) || lang.startsWith('zh-');\n}\n\nexport async function detectMultipleLanguages(text: string): Promise<TextSegment[]> {\n return detectMultipleLanguagesWithThreshold(text, DEFAULT_CONFIDENCE_THRESHOLD);\n}\n\nexport async function detectMultipleLanguagesWithThreshold(\n text: string,\n threshold: number\n): Promise<TextSegment[]> {\n if (!text) {\n return [];\n }\n\n await initCLD();\n\n const fallbackLang = await detectLanguage(text, MAX_FALLBACK_DETECTION_BYTES);\n const effectiveFallback = fallbackLang || 'en';\n\n if (!hasMixedScripts(text)) {\n logger.debug(`DetectMultipleLanguages: no mixed scripts, using single language: ${effectiveFallback}`);\n return [{\n text,\n language: effectiveFallback,\n start: 0,\n end: text.length,\n confidence: 1.0\n }];\n }\n\n logger.debug(`DetectMultipleLanguages: mixed scripts detected, fallback=${effectiveFallback}, threshold=${threshold.toFixed(2)}`);\n\n const segments: TextSegment[] = [];\n\n const segmenterAny = new (Intl as any).Segmenter(undefined, { granularity: 'sentence' });\n const sentenceSegments = Array.from(segmenterAny.segment(text)) as Array<{ segment: string, index: number }>;\n\n for (const { segment, index } of sentenceSegments) {\n try {\n await initCLD();\n const result = detectLanguageWithCLD(segment);\n const detectedLang = bcp47Normalize(result.language);\n const confidence = result.percentScore / 100;\n const scriptType = getScriptType(segment);\n\n let finalLang = effectiveFallback;\n let usedLogic = 'fallback';\n\n if (confidence >= threshold) {\n finalLang = detectedLang;\n usedLogic = 'confidence';\n } else {\n if (scriptType === 'Latin' && isCJKLanguage(effectiveFallback)) {\n if (detectedLang && detectedLang !== 'un') {\n finalLang = detectedLang;\n usedLogic = 'script-override-latin';\n } else {\n finalLang = 'en';\n usedLogic = 'script-override-en';\n }\n } else if (scriptType === 'CJK' && !isCJKLanguage(effectiveFallback)) {\n if (detectedLang && detectedLang !== 'un') {\n finalLang = detectedLang;\n usedLogic = 'script-override-cjk';\n }\n }\n }\n\n logger.debug(`Segment[${segments.length}]: \"${segment.replace(/\\n/g, '\\\\n')}\" -> lang=${detectedLang}, conf=${confidence.toFixed(2)}, script=${scriptType}, final=${finalLang} (${usedLogic})`);\n\n segments.push({\n text: segment,\n language: finalLang,\n start: index,\n end: index + segment.length,\n confidence\n });\n } catch (error) {\n logger.warn(`Failed to detect language for segment: ${error}`);\n handleCldError(error, { text: segment, operation: 'detectMultipleLanguages' });\n segments.push({\n text: segment,\n language: effectiveFallback,\n start: index,\n end: index + segment.length,\n confidence: 0\n });\n }\n }\n\n const mergedSegments = mergeAdjacentSegments(segments, text);\n const limitedSegments = limitLanguages(mergedSegments, text, MAXIMUM_LANGUAGES_IN_ONE_TEXT);\n\n logger.debug(`DetectMultipleLanguages: ${sentenceSegments.length} sentences -> ${mergedSegments.length} merged -> ${limitedSegments.length} final segments`);\n\n return limitedSegments;\n}\n\nfunction mergeAdjacentSegments(segments: TextSegment[], originalText: string): TextSegment[] {\n if (segments.length <= 1) {\n return segments;\n }\n\n const merged: TextSegment[] = [];\n let current = segments[0];\n\n for (let i = 1; i < segments.length; i++) {\n const next = segments[i];\n if (current.language === next.language) {\n current.text = originalText.substring(current.start, next.end);\n current.end = next.end;\n if (next.confidence > current.confidence) {\n current.confidence = next.confidence;\n }\n } else {\n merged.push(current);\n current = next;\n }\n }\n merged.push(current);\n\n return merged;\n}\n\nfunction limitLanguages(\n segments: TextSegment[],\n originalText: string,\n maxLangs: number\n): TextSegment[] {\n if (segments.length <= 1) {\n return segments;\n }\n\n const langBytes = new Map<string, number>();\n for (const seg of segments) {\n langBytes.set(seg.language, (langBytes.get(seg.language) || 0) + (seg.end - seg.start));\n }\n\n if (langBytes.size <= maxLangs) {\n return segments;\n }\n\n const sorted = Array.from(langBytes.entries())\n .sort((a, b) => b[1] - a[1]);\n\n const keepLangs = new Set(sorted.slice(0, maxLangs).map(([lang]) => lang));\n const primaryLang = sorted[0][0];\n\n for (const seg of segments) {\n if (!keepLangs.has(seg.language)) {\n seg.language = primaryLang;\n }\n }\n\n const result = mergeAdjacentSegments(segments, originalText);\n logger.debug(`limitLanguages: reduced to ${maxLangs} languages, ${result.length} segments`);\n\n return result;\n}",
|
|
17
|
-
"/**\n * @module LRUCache\n */\nconst perf = typeof performance === 'object' &&\n performance &&\n typeof performance.now === 'function'\n ? performance\n : Date;\nconst warned = new Set();\n/* c8 ignore start */\nconst PROCESS = (typeof process === 'object' && !!process ? process : {});\n/* c8 ignore start */\nconst emitWarning = (msg, type, code, fn) => {\n typeof PROCESS.emitWarning === 'function'\n ? PROCESS.emitWarning(msg, type, code, fn)\n : console.error(`[${code}] ${type}: ${msg}`);\n};\nlet AC = globalThis.AbortController;\nlet AS = globalThis.AbortSignal;\n/* c8 ignore start */\nif (typeof AC === 'undefined') {\n //@ts-ignore\n AS = class AbortSignal {\n onabort;\n _onabort = [];\n reason;\n aborted = false;\n addEventListener(_, fn) {\n this._onabort.push(fn);\n }\n };\n //@ts-ignore\n AC = class AbortController {\n constructor() {\n warnACPolyfill();\n }\n signal = new AS();\n abort(reason) {\n if (this.signal.aborted)\n return;\n //@ts-ignore\n this.signal.reason = reason;\n //@ts-ignore\n this.signal.aborted = true;\n //@ts-ignore\n for (const fn of this.signal._onabort) {\n fn(reason);\n }\n this.signal.onabort?.(reason);\n }\n };\n let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1';\n const warnACPolyfill = () => {\n if (!printACPolyfillWarning)\n return;\n printACPolyfillWarning = false;\n emitWarning('AbortController is not defined. If using lru-cache in ' +\n 'node 14, load an AbortController polyfill from the ' +\n '`node-abort-controller` package. A minimal polyfill is ' +\n 'provided for use by LRUCache.fetch(), but it should not be ' +\n 'relied upon in other contexts (eg, passing it to other APIs that ' +\n 'use AbortController/AbortSignal might have undesirable effects). ' +\n 'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.', 'NO_ABORT_CONTROLLER', 'ENOTSUP', warnACPolyfill);\n };\n}\n/* c8 ignore stop */\nconst shouldWarn = (code) => !warned.has(code);\nconst TYPE = Symbol('type');\nconst isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);\n/* c8 ignore start */\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values. Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\nconst getUintArray = (max) => !isPosInt(max)\n ? null\n : max <= Math.pow(2, 8)\n ? Uint8Array\n : max <= Math.pow(2, 16)\n ? Uint16Array\n : max <= Math.pow(2, 32)\n ? Uint32Array\n : max <= Number.MAX_SAFE_INTEGER\n ? ZeroArray\n : null;\n/* c8 ignore stop */\nclass ZeroArray extends Array {\n constructor(size) {\n super(size);\n this.fill(0);\n }\n}\nclass Stack {\n heap;\n length;\n // private constructor\n static #constructing = false;\n static create(max) {\n const HeapCls = getUintArray(max);\n if (!HeapCls)\n return [];\n Stack.#constructing = true;\n const s = new Stack(max, HeapCls);\n Stack.#constructing = false;\n return s;\n }\n constructor(max, HeapCls) {\n /* c8 ignore start */\n if (!Stack.#constructing) {\n throw new TypeError('instantiate Stack using Stack.create(n)');\n }\n /* c8 ignore stop */\n this.heap = new HeapCls(max);\n this.length = 0;\n }\n push(n) {\n this.heap[this.length++] = n;\n }\n pop() {\n return this.heap[--this.length];\n }\n}\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nexport class LRUCache {\n // options that cannot be changed without disaster\n #max;\n #maxSize;\n #dispose;\n #disposeAfter;\n #fetchMethod;\n #memoMethod;\n /**\n * {@link LRUCache.OptionsBase.ttl}\n */\n ttl;\n /**\n * {@link LRUCache.OptionsBase.ttlResolution}\n */\n ttlResolution;\n /**\n * {@link LRUCache.OptionsBase.ttlAutopurge}\n */\n ttlAutopurge;\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnGet}\n */\n updateAgeOnGet;\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnHas}\n */\n updateAgeOnHas;\n /**\n * {@link LRUCache.OptionsBase.allowStale}\n */\n allowStale;\n /**\n * {@link LRUCache.OptionsBase.noDisposeOnSet}\n */\n noDisposeOnSet;\n /**\n * {@link LRUCache.OptionsBase.noUpdateTTL}\n */\n noUpdateTTL;\n /**\n * {@link LRUCache.OptionsBase.maxEntrySize}\n */\n maxEntrySize;\n /**\n * {@link LRUCache.OptionsBase.sizeCalculation}\n */\n sizeCalculation;\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n */\n noDeleteOnFetchRejection;\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n */\n noDeleteOnStaleGet;\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n */\n allowStaleOnFetchAbort;\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n */\n allowStaleOnFetchRejection;\n /**\n * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n */\n ignoreFetchAbort;\n // computed properties\n #size;\n #calculatedSize;\n #keyMap;\n #keyList;\n #valList;\n #next;\n #prev;\n #head;\n #tail;\n #free;\n #disposed;\n #sizes;\n #starts;\n #ttls;\n #hasDispose;\n #hasFetchMethod;\n #hasDisposeAfter;\n /**\n * Do not call this method unless you need to inspect the\n * inner workings of the cache. If anything returned by this\n * object is modified in any way, strange breakage may occur.\n *\n * These fields are private for a reason!\n *\n * @internal\n */\n static unsafeExposeInternals(c) {\n return {\n // properties\n starts: c.#starts,\n ttls: c.#ttls,\n sizes: c.#sizes,\n keyMap: c.#keyMap,\n keyList: c.#keyList,\n valList: c.#valList,\n next: c.#next,\n prev: c.#prev,\n get head() {\n return c.#head;\n },\n get tail() {\n return c.#tail;\n },\n free: c.#free,\n // methods\n isBackgroundFetch: (p) => c.#isBackgroundFetch(p),\n backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),\n moveToTail: (index) => c.#moveToTail(index),\n indexes: (options) => c.#indexes(options),\n rindexes: (options) => c.#rindexes(options),\n isStale: (index) => c.#isStale(index),\n };\n }\n // Protected read-only members\n /**\n * {@link LRUCache.OptionsBase.max} (read-only)\n */\n get max() {\n return this.#max;\n }\n /**\n * {@link LRUCache.OptionsBase.maxSize} (read-only)\n */\n get maxSize() {\n return this.#maxSize;\n }\n /**\n * The total computed size of items in the cache (read-only)\n */\n get calculatedSize() {\n return this.#calculatedSize;\n }\n /**\n * The number of items stored in the cache (read-only)\n */\n get size() {\n return this.#size;\n }\n /**\n * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n */\n get fetchMethod() {\n return this.#fetchMethod;\n }\n get memoMethod() {\n return this.#memoMethod;\n }\n /**\n * {@link LRUCache.OptionsBase.dispose} (read-only)\n */\n get dispose() {\n return this.#dispose;\n }\n /**\n * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n */\n get disposeAfter() {\n return this.#disposeAfter;\n }\n constructor(options) {\n const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, } = options;\n if (max !== 0 && !isPosInt(max)) {\n throw new TypeError('max option must be a nonnegative integer');\n }\n const UintArray = max ? getUintArray(max) : Array;\n if (!UintArray) {\n throw new Error('invalid max value: ' + max);\n }\n this.#max = max;\n this.#maxSize = maxSize;\n this.maxEntrySize = maxEntrySize || this.#maxSize;\n this.sizeCalculation = sizeCalculation;\n if (this.sizeCalculation) {\n if (!this.#maxSize && !this.maxEntrySize) {\n throw new TypeError('cannot set sizeCalculation without setting maxSize or maxEntrySize');\n }\n if (typeof this.sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation set to non-function');\n }\n }\n if (memoMethod !== undefined &&\n typeof memoMethod !== 'function') {\n throw new TypeError('memoMethod must be a function if defined');\n }\n this.#memoMethod = memoMethod;\n if (fetchMethod !== undefined &&\n typeof fetchMethod !== 'function') {\n throw new TypeError('fetchMethod must be a function if specified');\n }\n this.#fetchMethod = fetchMethod;\n this.#hasFetchMethod = !!fetchMethod;\n this.#keyMap = new Map();\n this.#keyList = new Array(max).fill(undefined);\n this.#valList = new Array(max).fill(undefined);\n this.#next = new UintArray(max);\n this.#prev = new UintArray(max);\n this.#head = 0;\n this.#tail = 0;\n this.#free = Stack.create(max);\n this.#size = 0;\n this.#calculatedSize = 0;\n if (typeof dispose === 'function') {\n this.#dispose = dispose;\n }\n if (typeof disposeAfter === 'function') {\n this.#disposeAfter = disposeAfter;\n this.#disposed = [];\n }\n else {\n this.#disposeAfter = undefined;\n this.#disposed = undefined;\n }\n this.#hasDispose = !!this.#dispose;\n this.#hasDisposeAfter = !!this.#disposeAfter;\n this.noDisposeOnSet = !!noDisposeOnSet;\n this.noUpdateTTL = !!noUpdateTTL;\n this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;\n this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;\n this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;\n this.ignoreFetchAbort = !!ignoreFetchAbort;\n // NB: maxEntrySize is set to maxSize if it's set\n if (this.maxEntrySize !== 0) {\n if (this.#maxSize !== 0) {\n if (!isPosInt(this.#maxSize)) {\n throw new TypeError('maxSize must be a positive integer if specified');\n }\n }\n if (!isPosInt(this.maxEntrySize)) {\n throw new TypeError('maxEntrySize must be a positive integer if specified');\n }\n this.#initializeSizeTracking();\n }\n this.allowStale = !!allowStale;\n this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;\n this.updateAgeOnGet = !!updateAgeOnGet;\n this.updateAgeOnHas = !!updateAgeOnHas;\n this.ttlResolution =\n isPosInt(ttlResolution) || ttlResolution === 0\n ? ttlResolution\n : 1;\n this.ttlAutopurge = !!ttlAutopurge;\n this.ttl = ttl || 0;\n if (this.ttl) {\n if (!isPosInt(this.ttl)) {\n throw new TypeError('ttl must be a positive integer if specified');\n }\n this.#initializeTTLTracking();\n }\n // do not allow completely unbounded caches\n if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n throw new TypeError('At least one of max, maxSize, or ttl is required');\n }\n if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n const code = 'LRU_CACHE_UNBOUNDED';\n if (shouldWarn(code)) {\n warned.add(code);\n const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' +\n 'result in unbounded memory consumption.';\n emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache);\n }\n }\n }\n /**\n * Return the number of ms left in the item's TTL. If item is not in cache,\n * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n */\n getRemainingTTL(key) {\n return this.#keyMap.has(key) ? Infinity : 0;\n }\n #initializeTTLTracking() {\n const ttls = new ZeroArray(this.#max);\n const starts = new ZeroArray(this.#max);\n this.#ttls = ttls;\n this.#starts = starts;\n this.#setItemTTL = (index, ttl, start = perf.now()) => {\n starts[index] = ttl !== 0 ? start : 0;\n ttls[index] = ttl;\n if (ttl !== 0 && this.ttlAutopurge) {\n const t = setTimeout(() => {\n if (this.#isStale(index)) {\n this.#delete(this.#keyList[index], 'expire');\n }\n }, ttl + 1);\n // unref() not supported on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref();\n }\n /* c8 ignore stop */\n }\n };\n this.#updateItemAge = index => {\n starts[index] = ttls[index] !== 0 ? perf.now() : 0;\n };\n this.#statusTTL = (status, index) => {\n if (ttls[index]) {\n const ttl = ttls[index];\n const start = starts[index];\n /* c8 ignore next */\n if (!ttl || !start)\n return;\n status.ttl = ttl;\n status.start = start;\n status.now = cachedNow || getNow();\n const age = status.now - start;\n status.remainingTTL = ttl - age;\n }\n };\n // debounce calls to perf.now() to 1s so we're not hitting\n // that costly call repeatedly.\n let cachedNow = 0;\n const getNow = () => {\n const n = perf.now();\n if (this.ttlResolution > 0) {\n cachedNow = n;\n const t = setTimeout(() => (cachedNow = 0), this.ttlResolution);\n // not available on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref();\n }\n /* c8 ignore stop */\n }\n return n;\n };\n this.getRemainingTTL = key => {\n const index = this.#keyMap.get(key);\n if (index === undefined) {\n return 0;\n }\n const ttl = ttls[index];\n const start = starts[index];\n if (!ttl || !start) {\n return Infinity;\n }\n const age = (cachedNow || getNow()) - start;\n return ttl - age;\n };\n this.#isStale = index => {\n const s = starts[index];\n const t = ttls[index];\n return !!t && !!s && (cachedNow || getNow()) - s > t;\n };\n }\n // conditionally set private methods related to TTL\n #updateItemAge = () => { };\n #statusTTL = () => { };\n #setItemTTL = () => { };\n /* c8 ignore stop */\n #isStale = () => false;\n #initializeSizeTracking() {\n const sizes = new ZeroArray(this.#max);\n this.#calculatedSize = 0;\n this.#sizes = sizes;\n this.#removeItemSize = index => {\n this.#calculatedSize -= sizes[index];\n sizes[index] = 0;\n };\n this.#requireSize = (k, v, size, sizeCalculation) => {\n // provisionally accept background fetches.\n // actual value size will be checked when they return.\n if (this.#isBackgroundFetch(v)) {\n return 0;\n }\n if (!isPosInt(size)) {\n if (sizeCalculation) {\n if (typeof sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation must be a function');\n }\n size = sizeCalculation(v, k);\n if (!isPosInt(size)) {\n throw new TypeError('sizeCalculation return invalid (expect positive integer)');\n }\n }\n else {\n throw new TypeError('invalid size value (must be positive integer). ' +\n 'When maxSize or maxEntrySize is used, sizeCalculation ' +\n 'or size must be set.');\n }\n }\n return size;\n };\n this.#addItemSize = (index, size, status) => {\n sizes[index] = size;\n if (this.#maxSize) {\n const maxSize = this.#maxSize - sizes[index];\n while (this.#calculatedSize > maxSize) {\n this.#evict(true);\n }\n }\n this.#calculatedSize += sizes[index];\n if (status) {\n status.entrySize = size;\n status.totalCalculatedSize = this.#calculatedSize;\n }\n };\n }\n #removeItemSize = _i => { };\n #addItemSize = (_i, _s, _st) => { };\n #requireSize = (_k, _v, size, sizeCalculation) => {\n if (size || sizeCalculation) {\n throw new TypeError('cannot set size without setting maxSize or maxEntrySize on cache');\n }\n return 0;\n };\n *#indexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#tail; true;) {\n if (!this.#isValidIndex(i)) {\n break;\n }\n if (allowStale || !this.#isStale(i)) {\n yield i;\n }\n if (i === this.#head) {\n break;\n }\n else {\n i = this.#prev[i];\n }\n }\n }\n }\n *#rindexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#head; true;) {\n if (!this.#isValidIndex(i)) {\n break;\n }\n if (allowStale || !this.#isStale(i)) {\n yield i;\n }\n if (i === this.#tail) {\n break;\n }\n else {\n i = this.#next[i];\n }\n }\n }\n }\n #isValidIndex(index) {\n return (index !== undefined &&\n this.#keyMap.get(this.#keyList[index]) === index);\n }\n /**\n * Return a generator yielding `[key, value]` pairs,\n * in order from most recently used to least recently used.\n */\n *entries() {\n for (const i of this.#indexes()) {\n if (this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield [this.#keyList[i], this.#valList[i]];\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.entries}\n *\n * Return a generator yielding `[key, value]` pairs,\n * in order from least recently used to most recently used.\n */\n *rentries() {\n for (const i of this.#rindexes()) {\n if (this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield [this.#keyList[i], this.#valList[i]];\n }\n }\n }\n /**\n * Return a generator yielding the keys in the cache,\n * in order from most recently used to least recently used.\n */\n *keys() {\n for (const i of this.#indexes()) {\n const k = this.#keyList[i];\n if (k !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield k;\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.keys}\n *\n * Return a generator yielding the keys in the cache,\n * in order from least recently used to most recently used.\n */\n *rkeys() {\n for (const i of this.#rindexes()) {\n const k = this.#keyList[i];\n if (k !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield k;\n }\n }\n }\n /**\n * Return a generator yielding the values in the cache,\n * in order from most recently used to least recently used.\n */\n *values() {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n if (v !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i];\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.values}\n *\n * Return a generator yielding the values in the cache,\n * in order from least recently used to most recently used.\n */\n *rvalues() {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i];\n if (v !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i];\n }\n }\n }\n /**\n * Iterating over the cache itself yields the same results as\n * {@link LRUCache.entries}\n */\n [Symbol.iterator]() {\n return this.entries();\n }\n /**\n * A String value that is used in the creation of the default string\n * description of an object. Called by the built-in method\n * `Object.prototype.toString`.\n */\n [Symbol.toStringTag] = 'LRUCache';\n /**\n * Find a value for which the supplied fn method returns a truthy value,\n * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n */\n find(fn, getOptions = {}) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n continue;\n if (fn(value, this.#keyList[i], this)) {\n return this.get(this.#keyList[i], getOptions);\n }\n }\n }\n /**\n * Call the supplied function on each item in the cache, in order from most\n * recently used to least recently used.\n *\n * `fn` is called as `fn(value, key, cache)`.\n *\n * If `thisp` is provided, function will be called in the `this`-context of\n * the provided object, or the cache if no `thisp` object is provided.\n *\n * Does not update age or recenty of use, or iterate over stale values.\n */\n forEach(fn, thisp = this) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n continue;\n fn.call(thisp, value, this.#keyList[i], this);\n }\n }\n /**\n * The same as {@link LRUCache.forEach} but items are iterated over in\n * reverse order. (ie, less recently used items are iterated over first.)\n */\n rforEach(fn, thisp = this) {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n continue;\n fn.call(thisp, value, this.#keyList[i], this);\n }\n }\n /**\n * Delete any stale entries. Returns true if anything was removed,\n * false otherwise.\n */\n purgeStale() {\n let deleted = false;\n for (const i of this.#rindexes({ allowStale: true })) {\n if (this.#isStale(i)) {\n this.#delete(this.#keyList[i], 'expire');\n deleted = true;\n }\n }\n return deleted;\n }\n /**\n * Get the extended info about a given entry, to get its value, size, and\n * TTL info simultaneously. Returns `undefined` if the key is not present.\n *\n * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n * serialization, the `start` value is always the current timestamp, and the\n * `ttl` is a calculated remaining time to live (negative if expired).\n *\n * Always returns stale values, if their info is found in the cache, so be\n * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n * if relevant.\n */\n info(key) {\n const i = this.#keyMap.get(key);\n if (i === undefined)\n return undefined;\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n return undefined;\n const entry = { value };\n if (this.#ttls && this.#starts) {\n const ttl = this.#ttls[i];\n const start = this.#starts[i];\n if (ttl && start) {\n const remain = ttl - (perf.now() - start);\n entry.ttl = remain;\n entry.start = Date.now();\n }\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i];\n }\n return entry;\n }\n /**\n * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n * passed to {@link LRLUCache#load}.\n *\n * The `start` fields are calculated relative to a portable `Date.now()`\n * timestamp, even if `performance.now()` is available.\n *\n * Stale entries are always included in the `dump`, even if\n * {@link LRUCache.OptionsBase.allowStale} is false.\n *\n * Note: this returns an actual array, not a generator, so it can be more\n * easily passed around.\n */\n dump() {\n const arr = [];\n for (const i of this.#indexes({ allowStale: true })) {\n const key = this.#keyList[i];\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined || key === undefined)\n continue;\n const entry = { value };\n if (this.#ttls && this.#starts) {\n entry.ttl = this.#ttls[i];\n // always dump the start relative to a portable timestamp\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = perf.now() - this.#starts[i];\n entry.start = Math.floor(Date.now() - age);\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i];\n }\n arr.unshift([key, entry]);\n }\n return arr;\n }\n /**\n * Reset the cache and load in the items in entries in the order listed.\n *\n * The shape of the resulting cache may be different if the same options are\n * not used in both caches.\n *\n * The `start` fields are assumed to be calculated relative to a portable\n * `Date.now()` timestamp, even if `performance.now()` is available.\n */\n load(arr) {\n this.clear();\n for (const [key, entry] of arr) {\n if (entry.start) {\n // entry.start is a portable timestamp, but we may be using\n // node's performance.now(), so calculate the offset, so that\n // we get the intended remaining TTL, no matter how long it's\n // been on ice.\n //\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = Date.now() - entry.start;\n entry.start = perf.now() - age;\n }\n this.set(key, entry.value, entry);\n }\n }\n /**\n * Add a value to the cache.\n *\n * Note: if `undefined` is specified as a value, this is an alias for\n * {@link LRUCache#delete}\n *\n * Fields on the {@link LRUCache.SetOptions} options param will override\n * their corresponding values in the constructor options for the scope\n * of this single `set()` operation.\n *\n * If `start` is provided, then that will set the effective start\n * time for the TTL calculation. Note that this must be a previous\n * value of `performance.now()` if supported, or a previous value of\n * `Date.now()` if not.\n *\n * Options object may also include `size`, which will prevent\n * calling the `sizeCalculation` function and just use the specified\n * number if it is a positive integer, and `noDisposeOnSet` which\n * will prevent calling a `dispose` function in the case of\n * overwrites.\n *\n * If the `size` (or return value of `sizeCalculation`) for a given\n * entry is greater than `maxEntrySize`, then the item will not be\n * added to the cache.\n *\n * Will update the recency of the entry.\n *\n * If the value is `undefined`, then this is an alias for\n * `cache.delete(key)`. `undefined` is never stored in the cache.\n */\n set(k, v, setOptions = {}) {\n if (v === undefined) {\n this.delete(k);\n return this;\n }\n const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status, } = setOptions;\n let { noUpdateTTL = this.noUpdateTTL } = setOptions;\n const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);\n // if the item doesn't fit, don't do anything\n // NB: maxEntrySize set to maxSize by default\n if (this.maxEntrySize && size > this.maxEntrySize) {\n if (status) {\n status.set = 'miss';\n status.maxEntrySizeExceeded = true;\n }\n // have to delete, in case something is there already.\n this.#delete(k, 'set');\n return this;\n }\n let index = this.#size === 0 ? undefined : this.#keyMap.get(k);\n if (index === undefined) {\n // addition\n index = (this.#size === 0\n ? this.#tail\n : this.#free.length !== 0\n ? this.#free.pop()\n : this.#size === this.#max\n ? this.#evict(false)\n : this.#size);\n this.#keyList[index] = k;\n this.#valList[index] = v;\n this.#keyMap.set(k, index);\n this.#next[this.#tail] = index;\n this.#prev[index] = this.#tail;\n this.#tail = index;\n this.#size++;\n this.#addItemSize(index, size, status);\n if (status)\n status.set = 'add';\n noUpdateTTL = false;\n }\n else {\n // update\n this.#moveToTail(index);\n const oldVal = this.#valList[index];\n if (v !== oldVal) {\n if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n oldVal.__abortController.abort(new Error('replaced'));\n const { __staleWhileFetching: s } = oldVal;\n if (s !== undefined && !noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(s, k, 'set');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([s, k, 'set']);\n }\n }\n }\n else if (!noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(oldVal, k, 'set');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([oldVal, k, 'set']);\n }\n }\n this.#removeItemSize(index);\n this.#addItemSize(index, size, status);\n this.#valList[index] = v;\n if (status) {\n status.set = 'replace';\n const oldValue = oldVal && this.#isBackgroundFetch(oldVal)\n ? oldVal.__staleWhileFetching\n : oldVal;\n if (oldValue !== undefined)\n status.oldValue = oldValue;\n }\n }\n else if (status) {\n status.set = 'update';\n }\n }\n if (ttl !== 0 && !this.#ttls) {\n this.#initializeTTLTracking();\n }\n if (this.#ttls) {\n if (!noUpdateTTL) {\n this.#setItemTTL(index, ttl, start);\n }\n if (status)\n this.#statusTTL(status, index);\n }\n if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n return this;\n }\n /**\n * Evict the least recently used item, returning its value or\n * `undefined` if cache is empty.\n */\n pop() {\n try {\n while (this.#size) {\n const val = this.#valList[this.#head];\n this.#evict(true);\n if (this.#isBackgroundFetch(val)) {\n if (val.__staleWhileFetching) {\n return val.__staleWhileFetching;\n }\n }\n else if (val !== undefined) {\n return val;\n }\n }\n }\n finally {\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n }\n }\n #evict(free) {\n const head = this.#head;\n const k = this.#keyList[head];\n const v = this.#valList[head];\n if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('evicted'));\n }\n else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, 'evict');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, 'evict']);\n }\n }\n this.#removeItemSize(head);\n // if we aren't about to use the index, then null these out\n if (free) {\n this.#keyList[head] = undefined;\n this.#valList[head] = undefined;\n this.#free.push(head);\n }\n if (this.#size === 1) {\n this.#head = this.#tail = 0;\n this.#free.length = 0;\n }\n else {\n this.#head = this.#next[head];\n }\n this.#keyMap.delete(k);\n this.#size--;\n return head;\n }\n /**\n * Check if a key is in the cache, without updating the recency of use.\n * Will return false if the item is stale, even though it is technically\n * in the cache.\n *\n * Check if a key is in the cache, without updating the recency of\n * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n * to `true` in either the options or the constructor.\n *\n * Will return `false` if the item is stale, even though it is technically in\n * the cache. The difference can be determined (if it matters) by using a\n * `status` argument, and inspecting the `has` field.\n *\n * Will not update item age unless\n * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n */\n has(k, hasOptions = {}) {\n const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v) &&\n v.__staleWhileFetching === undefined) {\n return false;\n }\n if (!this.#isStale(index)) {\n if (updateAgeOnHas) {\n this.#updateItemAge(index);\n }\n if (status) {\n status.has = 'hit';\n this.#statusTTL(status, index);\n }\n return true;\n }\n else if (status) {\n status.has = 'stale';\n this.#statusTTL(status, index);\n }\n }\n else if (status) {\n status.has = 'miss';\n }\n return false;\n }\n /**\n * Like {@link LRUCache#get} but doesn't update recency or delete stale\n * items.\n *\n * Returns `undefined` if the item is stale, unless\n * {@link LRUCache.OptionsBase.allowStale} is set.\n */\n peek(k, peekOptions = {}) {\n const { allowStale = this.allowStale } = peekOptions;\n const index = this.#keyMap.get(k);\n if (index === undefined ||\n (!allowStale && this.#isStale(index))) {\n return;\n }\n const v = this.#valList[index];\n // either stale and allowed, or forcing a refresh of non-stale value\n return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n }\n #backgroundFetch(k, index, options, context) {\n const v = index === undefined ? undefined : this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n return v;\n }\n const ac = new AC();\n const { signal } = options;\n // when/if our AC signals, then stop listening to theirs.\n signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n signal: ac.signal,\n });\n const fetchOpts = {\n signal: ac.signal,\n options,\n context,\n };\n const cb = (v, updateCache = false) => {\n const { aborted } = ac.signal;\n const ignoreAbort = options.ignoreFetchAbort && v !== undefined;\n if (options.status) {\n if (aborted && !updateCache) {\n options.status.fetchAborted = true;\n options.status.fetchError = ac.signal.reason;\n if (ignoreAbort)\n options.status.fetchAbortIgnored = true;\n }\n else {\n options.status.fetchResolved = true;\n }\n }\n if (aborted && !ignoreAbort && !updateCache) {\n return fetchFail(ac.signal.reason);\n }\n // either we didn't abort, and are still here, or we did, and ignored\n const bf = p;\n if (this.#valList[index] === p) {\n if (v === undefined) {\n if (bf.__staleWhileFetching) {\n this.#valList[index] = bf.__staleWhileFetching;\n }\n else {\n this.#delete(k, 'fetch');\n }\n }\n else {\n if (options.status)\n options.status.fetchUpdated = true;\n this.set(k, v, fetchOpts.options);\n }\n }\n return v;\n };\n const eb = (er) => {\n if (options.status) {\n options.status.fetchRejected = true;\n options.status.fetchError = er;\n }\n return fetchFail(er);\n };\n const fetchFail = (er) => {\n const { aborted } = ac.signal;\n const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;\n const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;\n const noDelete = allowStale || options.noDeleteOnFetchRejection;\n const bf = p;\n if (this.#valList[index] === p) {\n // if we allow stale on fetch rejections, then we need to ensure that\n // the stale value is not removed from the cache when the fetch fails.\n const del = !noDelete || bf.__staleWhileFetching === undefined;\n if (del) {\n this.#delete(k, 'fetch');\n }\n else if (!allowStaleAborted) {\n // still replace the *promise* with the stale value,\n // since we are done with the promise at this point.\n // leave it untouched if we're still waiting for an\n // aborted background fetch that hasn't yet returned.\n this.#valList[index] = bf.__staleWhileFetching;\n }\n }\n if (allowStale) {\n if (options.status && bf.__staleWhileFetching !== undefined) {\n options.status.returnedStale = true;\n }\n return bf.__staleWhileFetching;\n }\n else if (bf.__returned === bf) {\n throw er;\n }\n };\n const pcall = (res, rej) => {\n const fmp = this.#fetchMethod?.(k, v, fetchOpts);\n if (fmp && fmp instanceof Promise) {\n fmp.then(v => res(v === undefined ? undefined : v), rej);\n }\n // ignored, we go until we finish, regardless.\n // defer check until we are actually aborting,\n // so fetchMethod can override.\n ac.signal.addEventListener('abort', () => {\n if (!options.ignoreFetchAbort ||\n options.allowStaleOnFetchAbort) {\n res(undefined);\n // when it eventually resolves, update the cache.\n if (options.allowStaleOnFetchAbort) {\n res = v => cb(v, true);\n }\n }\n });\n };\n if (options.status)\n options.status.fetchDispatched = true;\n const p = new Promise(pcall).then(cb, eb);\n const bf = Object.assign(p, {\n __abortController: ac,\n __staleWhileFetching: v,\n __returned: undefined,\n });\n if (index === undefined) {\n // internal, don't expose status.\n this.set(k, bf, { ...fetchOpts.options, status: undefined });\n index = this.#keyMap.get(k);\n }\n else {\n this.#valList[index] = bf;\n }\n return bf;\n }\n #isBackgroundFetch(p) {\n if (!this.#hasFetchMethod)\n return false;\n const b = p;\n return (!!b &&\n b instanceof Promise &&\n b.hasOwnProperty('__staleWhileFetching') &&\n b.__abortController instanceof AC);\n }\n async fetch(k, fetchOptions = {}) {\n const { \n // get options\n allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, \n // set options\n ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL, \n // fetch exclusive options\n noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal, } = fetchOptions;\n if (!this.#hasFetchMethod) {\n if (status)\n status.fetch = 'get';\n return this.get(k, {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n status,\n });\n }\n const options = {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n ttl,\n noDisposeOnSet,\n size,\n sizeCalculation,\n noUpdateTTL,\n noDeleteOnFetchRejection,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n status,\n signal,\n };\n let index = this.#keyMap.get(k);\n if (index === undefined) {\n if (status)\n status.fetch = 'miss';\n const p = this.#backgroundFetch(k, index, options, context);\n return (p.__returned = p);\n }\n else {\n // in cache, maybe already fetching\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n const stale = allowStale && v.__staleWhileFetching !== undefined;\n if (status) {\n status.fetch = 'inflight';\n if (stale)\n status.returnedStale = true;\n }\n return stale ? v.__staleWhileFetching : (v.__returned = v);\n }\n // if we force a refresh, that means do NOT serve the cached value,\n // unless we are already in the process of refreshing the cache.\n const isStale = this.#isStale(index);\n if (!forceRefresh && !isStale) {\n if (status)\n status.fetch = 'hit';\n this.#moveToTail(index);\n if (updateAgeOnGet) {\n this.#updateItemAge(index);\n }\n if (status)\n this.#statusTTL(status, index);\n return v;\n }\n // ok, it is stale or a forced refresh, and not already fetching.\n // refresh the cache.\n const p = this.#backgroundFetch(k, index, options, context);\n const hasStale = p.__staleWhileFetching !== undefined;\n const staleVal = hasStale && allowStale;\n if (status) {\n status.fetch = isStale ? 'stale' : 'refresh';\n if (staleVal && isStale)\n status.returnedStale = true;\n }\n return staleVal ? p.__staleWhileFetching : (p.__returned = p);\n }\n }\n async forceFetch(k, fetchOptions = {}) {\n const v = await this.fetch(k, fetchOptions);\n if (v === undefined)\n throw new Error('fetch() returned undefined');\n return v;\n }\n memo(k, memoOptions = {}) {\n const memoMethod = this.#memoMethod;\n if (!memoMethod) {\n throw new Error('no memoMethod provided to constructor');\n }\n const { context, forceRefresh, ...options } = memoOptions;\n const v = this.get(k, options);\n if (!forceRefresh && v !== undefined)\n return v;\n const vv = memoMethod(k, v, {\n options,\n context,\n });\n this.set(k, vv, options);\n return vv;\n }\n /**\n * Return a value from the cache. Will update the recency of the cache\n * entry found.\n *\n * If the key is not found, get() will return `undefined`.\n */\n get(k, getOptions = {}) {\n const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status, } = getOptions;\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n const value = this.#valList[index];\n const fetching = this.#isBackgroundFetch(value);\n if (status)\n this.#statusTTL(status, index);\n if (this.#isStale(index)) {\n if (status)\n status.get = 'stale';\n // delete only if not an in-flight background fetch\n if (!fetching) {\n if (!noDeleteOnStaleGet) {\n this.#delete(k, 'expire');\n }\n if (status && allowStale)\n status.returnedStale = true;\n return allowStale ? value : undefined;\n }\n else {\n if (status &&\n allowStale &&\n value.__staleWhileFetching !== undefined) {\n status.returnedStale = true;\n }\n return allowStale ? value.__staleWhileFetching : undefined;\n }\n }\n else {\n if (status)\n status.get = 'hit';\n // if we're currently fetching it, we don't actually have it yet\n // it's not stale, which means this isn't a staleWhileRefetching.\n // If it's not stale, and fetching, AND has a __staleWhileFetching\n // value, then that means the user fetched with {forceRefresh:true},\n // so it's safe to return that value.\n if (fetching) {\n return value.__staleWhileFetching;\n }\n this.#moveToTail(index);\n if (updateAgeOnGet) {\n this.#updateItemAge(index);\n }\n return value;\n }\n }\n else if (status) {\n status.get = 'miss';\n }\n }\n #connect(p, n) {\n this.#prev[n] = p;\n this.#next[p] = n;\n }\n #moveToTail(index) {\n // if tail already, nothing to do\n // if head, move head to next[index]\n // else\n // move next[prev[index]] to next[index] (head has no prev)\n // move prev[next[index]] to prev[index]\n // prev[index] = tail\n // next[tail] = index\n // tail = index\n if (index !== this.#tail) {\n if (index === this.#head) {\n this.#head = this.#next[index];\n }\n else {\n this.#connect(this.#prev[index], this.#next[index]);\n }\n this.#connect(this.#tail, index);\n this.#tail = index;\n }\n }\n /**\n * Deletes a key out of the cache.\n *\n * Returns true if the key was deleted, false otherwise.\n */\n delete(k) {\n return this.#delete(k, 'delete');\n }\n #delete(k, reason) {\n let deleted = false;\n if (this.#size !== 0) {\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n deleted = true;\n if (this.#size === 1) {\n this.#clear(reason);\n }\n else {\n this.#removeItemSize(index);\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'));\n }\n else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, reason);\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, reason]);\n }\n }\n this.#keyMap.delete(k);\n this.#keyList[index] = undefined;\n this.#valList[index] = undefined;\n if (index === this.#tail) {\n this.#tail = this.#prev[index];\n }\n else if (index === this.#head) {\n this.#head = this.#next[index];\n }\n else {\n const pi = this.#prev[index];\n this.#next[pi] = this.#next[index];\n const ni = this.#next[index];\n this.#prev[ni] = this.#prev[index];\n }\n this.#size--;\n this.#free.push(index);\n }\n }\n }\n if (this.#hasDisposeAfter && this.#disposed?.length) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n return deleted;\n }\n /**\n * Clear the cache entirely, throwing away all values.\n */\n clear() {\n return this.#clear('delete');\n }\n #clear(reason) {\n for (const index of this.#rindexes({ allowStale: true })) {\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'));\n }\n else {\n const k = this.#keyList[index];\n if (this.#hasDispose) {\n this.#dispose?.(v, k, reason);\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, reason]);\n }\n }\n }\n this.#keyMap.clear();\n this.#valList.fill(undefined);\n this.#keyList.fill(undefined);\n if (this.#ttls && this.#starts) {\n this.#ttls.fill(0);\n this.#starts.fill(0);\n }\n if (this.#sizes) {\n this.#sizes.fill(0);\n }\n this.#head = 0;\n this.#tail = 0;\n this.#free.length = 0;\n this.#calculatedSize = 0;\n this.#size = 0;\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n }\n}\n//# sourceMappingURL=index.js.map",
|
|
17
|
+
"/**\n * @module LRUCache\n */\nconst defaultPerf = (typeof performance === 'object' &&\n performance &&\n typeof performance.now === 'function') ?\n performance\n : Date;\nconst warned = new Set();\n/* c8 ignore start */\nconst PROCESS = (typeof process === 'object' && !!process ?\n process\n : {});\n/* c8 ignore start */\nconst emitWarning = (msg, type, code, fn) => {\n typeof PROCESS.emitWarning === 'function' ?\n PROCESS.emitWarning(msg, type, code, fn)\n : console.error(`[${code}] ${type}: ${msg}`);\n};\nlet AC = globalThis.AbortController;\nlet AS = globalThis.AbortSignal;\n/* c8 ignore start */\nif (typeof AC === 'undefined') {\n //@ts-ignore\n AS = class AbortSignal {\n onabort;\n _onabort = [];\n reason;\n aborted = false;\n addEventListener(_, fn) {\n this._onabort.push(fn);\n }\n };\n //@ts-ignore\n AC = class AbortController {\n constructor() {\n warnACPolyfill();\n }\n signal = new AS();\n abort(reason) {\n if (this.signal.aborted)\n return;\n //@ts-ignore\n this.signal.reason = reason;\n //@ts-ignore\n this.signal.aborted = true;\n //@ts-ignore\n for (const fn of this.signal._onabort) {\n fn(reason);\n }\n this.signal.onabort?.(reason);\n }\n };\n let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1';\n const warnACPolyfill = () => {\n if (!printACPolyfillWarning)\n return;\n printACPolyfillWarning = false;\n emitWarning('AbortController is not defined. If using lru-cache in ' +\n 'node 14, load an AbortController polyfill from the ' +\n '`node-abort-controller` package. A minimal polyfill is ' +\n 'provided for use by LRUCache.fetch(), but it should not be ' +\n 'relied upon in other contexts (eg, passing it to other APIs that ' +\n 'use AbortController/AbortSignal might have undesirable effects). ' +\n 'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.', 'NO_ABORT_CONTROLLER', 'ENOTSUP', warnACPolyfill);\n };\n}\n/* c8 ignore stop */\nconst shouldWarn = (code) => !warned.has(code);\nconst TYPE = Symbol('type');\nconst isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);\n/* c8 ignore start */\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values. Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\nconst getUintArray = (max) => !isPosInt(max) ? null\n : max <= Math.pow(2, 8) ? Uint8Array\n : max <= Math.pow(2, 16) ? Uint16Array\n : max <= Math.pow(2, 32) ? Uint32Array\n : max <= Number.MAX_SAFE_INTEGER ? ZeroArray\n : null;\n/* c8 ignore stop */\nclass ZeroArray extends Array {\n constructor(size) {\n super(size);\n this.fill(0);\n }\n}\nclass Stack {\n heap;\n length;\n // private constructor\n static #constructing = false;\n static create(max) {\n const HeapCls = getUintArray(max);\n if (!HeapCls)\n return [];\n Stack.#constructing = true;\n const s = new Stack(max, HeapCls);\n Stack.#constructing = false;\n return s;\n }\n constructor(max, HeapCls) {\n /* c8 ignore start */\n if (!Stack.#constructing) {\n throw new TypeError('instantiate Stack using Stack.create(n)');\n }\n /* c8 ignore stop */\n this.heap = new HeapCls(max);\n this.length = 0;\n }\n push(n) {\n this.heap[this.length++] = n;\n }\n pop() {\n return this.heap[--this.length];\n }\n}\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nexport class LRUCache {\n // options that cannot be changed without disaster\n #max;\n #maxSize;\n #dispose;\n #onInsert;\n #disposeAfter;\n #fetchMethod;\n #memoMethod;\n #perf;\n /**\n * {@link LRUCache.OptionsBase.perf}\n */\n get perf() {\n return this.#perf;\n }\n /**\n * {@link LRUCache.OptionsBase.ttl}\n */\n ttl;\n /**\n * {@link LRUCache.OptionsBase.ttlResolution}\n */\n ttlResolution;\n /**\n * {@link LRUCache.OptionsBase.ttlAutopurge}\n */\n ttlAutopurge;\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnGet}\n */\n updateAgeOnGet;\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnHas}\n */\n updateAgeOnHas;\n /**\n * {@link LRUCache.OptionsBase.allowStale}\n */\n allowStale;\n /**\n * {@link LRUCache.OptionsBase.noDisposeOnSet}\n */\n noDisposeOnSet;\n /**\n * {@link LRUCache.OptionsBase.noUpdateTTL}\n */\n noUpdateTTL;\n /**\n * {@link LRUCache.OptionsBase.maxEntrySize}\n */\n maxEntrySize;\n /**\n * {@link LRUCache.OptionsBase.sizeCalculation}\n */\n sizeCalculation;\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n */\n noDeleteOnFetchRejection;\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n */\n noDeleteOnStaleGet;\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n */\n allowStaleOnFetchAbort;\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n */\n allowStaleOnFetchRejection;\n /**\n * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n */\n ignoreFetchAbort;\n // computed properties\n #size;\n #calculatedSize;\n #keyMap;\n #keyList;\n #valList;\n #next;\n #prev;\n #head;\n #tail;\n #free;\n #disposed;\n #sizes;\n #starts;\n #ttls;\n #autopurgeTimers;\n #hasDispose;\n #hasFetchMethod;\n #hasDisposeAfter;\n #hasOnInsert;\n /**\n * Do not call this method unless you need to inspect the\n * inner workings of the cache. If anything returned by this\n * object is modified in any way, strange breakage may occur.\n *\n * These fields are private for a reason!\n *\n * @internal\n */\n static unsafeExposeInternals(c) {\n return {\n // properties\n starts: c.#starts,\n ttls: c.#ttls,\n autopurgeTimers: c.#autopurgeTimers,\n sizes: c.#sizes,\n keyMap: c.#keyMap,\n keyList: c.#keyList,\n valList: c.#valList,\n next: c.#next,\n prev: c.#prev,\n get head() {\n return c.#head;\n },\n get tail() {\n return c.#tail;\n },\n free: c.#free,\n // methods\n isBackgroundFetch: (p) => c.#isBackgroundFetch(p),\n backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),\n moveToTail: (index) => c.#moveToTail(index),\n indexes: (options) => c.#indexes(options),\n rindexes: (options) => c.#rindexes(options),\n isStale: (index) => c.#isStale(index),\n };\n }\n // Protected read-only members\n /**\n * {@link LRUCache.OptionsBase.max} (read-only)\n */\n get max() {\n return this.#max;\n }\n /**\n * {@link LRUCache.OptionsBase.maxSize} (read-only)\n */\n get maxSize() {\n return this.#maxSize;\n }\n /**\n * The total computed size of items in the cache (read-only)\n */\n get calculatedSize() {\n return this.#calculatedSize;\n }\n /**\n * The number of items stored in the cache (read-only)\n */\n get size() {\n return this.#size;\n }\n /**\n * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n */\n get fetchMethod() {\n return this.#fetchMethod;\n }\n get memoMethod() {\n return this.#memoMethod;\n }\n /**\n * {@link LRUCache.OptionsBase.dispose} (read-only)\n */\n get dispose() {\n return this.#dispose;\n }\n /**\n * {@link LRUCache.OptionsBase.onInsert} (read-only)\n */\n get onInsert() {\n return this.#onInsert;\n }\n /**\n * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n */\n get disposeAfter() {\n return this.#disposeAfter;\n }\n constructor(options) {\n const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, onInsert, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, perf, } = options;\n if (perf !== undefined) {\n if (typeof perf?.now !== 'function') {\n throw new TypeError('perf option must have a now() method if specified');\n }\n }\n this.#perf = perf ?? defaultPerf;\n if (max !== 0 && !isPosInt(max)) {\n throw new TypeError('max option must be a nonnegative integer');\n }\n const UintArray = max ? getUintArray(max) : Array;\n if (!UintArray) {\n throw new Error('invalid max value: ' + max);\n }\n this.#max = max;\n this.#maxSize = maxSize;\n this.maxEntrySize = maxEntrySize || this.#maxSize;\n this.sizeCalculation = sizeCalculation;\n if (this.sizeCalculation) {\n if (!this.#maxSize && !this.maxEntrySize) {\n throw new TypeError('cannot set sizeCalculation without setting maxSize or maxEntrySize');\n }\n if (typeof this.sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation set to non-function');\n }\n }\n if (memoMethod !== undefined && typeof memoMethod !== 'function') {\n throw new TypeError('memoMethod must be a function if defined');\n }\n this.#memoMethod = memoMethod;\n if (fetchMethod !== undefined && typeof fetchMethod !== 'function') {\n throw new TypeError('fetchMethod must be a function if specified');\n }\n this.#fetchMethod = fetchMethod;\n this.#hasFetchMethod = !!fetchMethod;\n this.#keyMap = new Map();\n this.#keyList = new Array(max).fill(undefined);\n this.#valList = new Array(max).fill(undefined);\n this.#next = new UintArray(max);\n this.#prev = new UintArray(max);\n this.#head = 0;\n this.#tail = 0;\n this.#free = Stack.create(max);\n this.#size = 0;\n this.#calculatedSize = 0;\n if (typeof dispose === 'function') {\n this.#dispose = dispose;\n }\n if (typeof onInsert === 'function') {\n this.#onInsert = onInsert;\n }\n if (typeof disposeAfter === 'function') {\n this.#disposeAfter = disposeAfter;\n this.#disposed = [];\n }\n else {\n this.#disposeAfter = undefined;\n this.#disposed = undefined;\n }\n this.#hasDispose = !!this.#dispose;\n this.#hasOnInsert = !!this.#onInsert;\n this.#hasDisposeAfter = !!this.#disposeAfter;\n this.noDisposeOnSet = !!noDisposeOnSet;\n this.noUpdateTTL = !!noUpdateTTL;\n this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;\n this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;\n this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;\n this.ignoreFetchAbort = !!ignoreFetchAbort;\n // NB: maxEntrySize is set to maxSize if it's set\n if (this.maxEntrySize !== 0) {\n if (this.#maxSize !== 0) {\n if (!isPosInt(this.#maxSize)) {\n throw new TypeError('maxSize must be a positive integer if specified');\n }\n }\n if (!isPosInt(this.maxEntrySize)) {\n throw new TypeError('maxEntrySize must be a positive integer if specified');\n }\n this.#initializeSizeTracking();\n }\n this.allowStale = !!allowStale;\n this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;\n this.updateAgeOnGet = !!updateAgeOnGet;\n this.updateAgeOnHas = !!updateAgeOnHas;\n this.ttlResolution =\n isPosInt(ttlResolution) || ttlResolution === 0 ? ttlResolution : 1;\n this.ttlAutopurge = !!ttlAutopurge;\n this.ttl = ttl || 0;\n if (this.ttl) {\n if (!isPosInt(this.ttl)) {\n throw new TypeError('ttl must be a positive integer if specified');\n }\n this.#initializeTTLTracking();\n }\n // do not allow completely unbounded caches\n if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n throw new TypeError('At least one of max, maxSize, or ttl is required');\n }\n if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n const code = 'LRU_CACHE_UNBOUNDED';\n if (shouldWarn(code)) {\n warned.add(code);\n const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' +\n 'result in unbounded memory consumption.';\n emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache);\n }\n }\n }\n /**\n * Return the number of ms left in the item's TTL. If item is not in cache,\n * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n */\n getRemainingTTL(key) {\n return this.#keyMap.has(key) ? Infinity : 0;\n }\n #initializeTTLTracking() {\n const ttls = new ZeroArray(this.#max);\n const starts = new ZeroArray(this.#max);\n this.#ttls = ttls;\n this.#starts = starts;\n const purgeTimers = this.ttlAutopurge ?\n new Array(this.#max)\n : undefined;\n this.#autopurgeTimers = purgeTimers;\n this.#setItemTTL = (index, ttl, start = this.#perf.now()) => {\n starts[index] = ttl !== 0 ? start : 0;\n ttls[index] = ttl;\n // clear out the purge timer if we're setting TTL to 0, and\n // previously had a ttl purge timer running, so it doesn't\n // fire unnecessarily.\n if (purgeTimers?.[index]) {\n clearTimeout(purgeTimers[index]);\n purgeTimers[index] = undefined;\n }\n if (ttl !== 0 && purgeTimers) {\n const t = setTimeout(() => {\n if (this.#isStale(index)) {\n this.#delete(this.#keyList[index], 'expire');\n }\n }, ttl + 1);\n // unref() not supported on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref();\n }\n /* c8 ignore stop */\n purgeTimers[index] = t;\n }\n };\n this.#updateItemAge = index => {\n starts[index] = ttls[index] !== 0 ? this.#perf.now() : 0;\n };\n this.#statusTTL = (status, index) => {\n if (ttls[index]) {\n const ttl = ttls[index];\n const start = starts[index];\n /* c8 ignore next */\n if (!ttl || !start)\n return;\n status.ttl = ttl;\n status.start = start;\n status.now = cachedNow || getNow();\n const age = status.now - start;\n status.remainingTTL = ttl - age;\n }\n };\n // debounce calls to perf.now() to 1s so we're not hitting\n // that costly call repeatedly.\n let cachedNow = 0;\n const getNow = () => {\n const n = this.#perf.now();\n if (this.ttlResolution > 0) {\n cachedNow = n;\n const t = setTimeout(() => (cachedNow = 0), this.ttlResolution);\n // not available on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref();\n }\n /* c8 ignore stop */\n }\n return n;\n };\n this.getRemainingTTL = key => {\n const index = this.#keyMap.get(key);\n if (index === undefined) {\n return 0;\n }\n const ttl = ttls[index];\n const start = starts[index];\n if (!ttl || !start) {\n return Infinity;\n }\n const age = (cachedNow || getNow()) - start;\n return ttl - age;\n };\n this.#isStale = index => {\n const s = starts[index];\n const t = ttls[index];\n return !!t && !!s && (cachedNow || getNow()) - s > t;\n };\n }\n // conditionally set private methods related to TTL\n #updateItemAge = () => { };\n #statusTTL = () => { };\n #setItemTTL = () => { };\n /* c8 ignore stop */\n #isStale = () => false;\n #initializeSizeTracking() {\n const sizes = new ZeroArray(this.#max);\n this.#calculatedSize = 0;\n this.#sizes = sizes;\n this.#removeItemSize = index => {\n this.#calculatedSize -= sizes[index];\n sizes[index] = 0;\n };\n this.#requireSize = (k, v, size, sizeCalculation) => {\n // provisionally accept background fetches.\n // actual value size will be checked when they return.\n if (this.#isBackgroundFetch(v)) {\n return 0;\n }\n if (!isPosInt(size)) {\n if (sizeCalculation) {\n if (typeof sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation must be a function');\n }\n size = sizeCalculation(v, k);\n if (!isPosInt(size)) {\n throw new TypeError('sizeCalculation return invalid (expect positive integer)');\n }\n }\n else {\n throw new TypeError('invalid size value (must be positive integer). ' +\n 'When maxSize or maxEntrySize is used, sizeCalculation ' +\n 'or size must be set.');\n }\n }\n return size;\n };\n this.#addItemSize = (index, size, status) => {\n sizes[index] = size;\n if (this.#maxSize) {\n const maxSize = this.#maxSize - sizes[index];\n while (this.#calculatedSize > maxSize) {\n this.#evict(true);\n }\n }\n this.#calculatedSize += sizes[index];\n if (status) {\n status.entrySize = size;\n status.totalCalculatedSize = this.#calculatedSize;\n }\n };\n }\n #removeItemSize = _i => { };\n #addItemSize = (_i, _s, _st) => { };\n #requireSize = (_k, _v, size, sizeCalculation) => {\n if (size || sizeCalculation) {\n throw new TypeError('cannot set size without setting maxSize or maxEntrySize on cache');\n }\n return 0;\n };\n *#indexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#tail; true;) {\n if (!this.#isValidIndex(i)) {\n break;\n }\n if (allowStale || !this.#isStale(i)) {\n yield i;\n }\n if (i === this.#head) {\n break;\n }\n else {\n i = this.#prev[i];\n }\n }\n }\n }\n *#rindexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#head; true;) {\n if (!this.#isValidIndex(i)) {\n break;\n }\n if (allowStale || !this.#isStale(i)) {\n yield i;\n }\n if (i === this.#tail) {\n break;\n }\n else {\n i = this.#next[i];\n }\n }\n }\n }\n #isValidIndex(index) {\n return (index !== undefined &&\n this.#keyMap.get(this.#keyList[index]) === index);\n }\n /**\n * Return a generator yielding `[key, value]` pairs,\n * in order from most recently used to least recently used.\n */\n *entries() {\n for (const i of this.#indexes()) {\n if (this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield [this.#keyList[i], this.#valList[i]];\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.entries}\n *\n * Return a generator yielding `[key, value]` pairs,\n * in order from least recently used to most recently used.\n */\n *rentries() {\n for (const i of this.#rindexes()) {\n if (this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield [this.#keyList[i], this.#valList[i]];\n }\n }\n }\n /**\n * Return a generator yielding the keys in the cache,\n * in order from most recently used to least recently used.\n */\n *keys() {\n for (const i of this.#indexes()) {\n const k = this.#keyList[i];\n if (k !== undefined && !this.#isBackgroundFetch(this.#valList[i])) {\n yield k;\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.keys}\n *\n * Return a generator yielding the keys in the cache,\n * in order from least recently used to most recently used.\n */\n *rkeys() {\n for (const i of this.#rindexes()) {\n const k = this.#keyList[i];\n if (k !== undefined && !this.#isBackgroundFetch(this.#valList[i])) {\n yield k;\n }\n }\n }\n /**\n * Return a generator yielding the values in the cache,\n * in order from most recently used to least recently used.\n */\n *values() {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n if (v !== undefined && !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i];\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.values}\n *\n * Return a generator yielding the values in the cache,\n * in order from least recently used to most recently used.\n */\n *rvalues() {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i];\n if (v !== undefined && !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i];\n }\n }\n }\n /**\n * Iterating over the cache itself yields the same results as\n * {@link LRUCache.entries}\n */\n [Symbol.iterator]() {\n return this.entries();\n }\n /**\n * A String value that is used in the creation of the default string\n * description of an object. Called by the built-in method\n * `Object.prototype.toString`.\n */\n [Symbol.toStringTag] = 'LRUCache';\n /**\n * Find a value for which the supplied fn method returns a truthy value,\n * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n */\n find(fn, getOptions = {}) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n if (value === undefined)\n continue;\n if (fn(value, this.#keyList[i], this)) {\n return this.get(this.#keyList[i], getOptions);\n }\n }\n }\n /**\n * Call the supplied function on each item in the cache, in order from most\n * recently used to least recently used.\n *\n * `fn` is called as `fn(value, key, cache)`.\n *\n * If `thisp` is provided, function will be called in the `this`-context of\n * the provided object, or the cache if no `thisp` object is provided.\n *\n * Does not update age or recenty of use, or iterate over stale values.\n */\n forEach(fn, thisp = this) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n if (value === undefined)\n continue;\n fn.call(thisp, value, this.#keyList[i], this);\n }\n }\n /**\n * The same as {@link LRUCache.forEach} but items are iterated over in\n * reverse order. (ie, less recently used items are iterated over first.)\n */\n rforEach(fn, thisp = this) {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n if (value === undefined)\n continue;\n fn.call(thisp, value, this.#keyList[i], this);\n }\n }\n /**\n * Delete any stale entries. Returns true if anything was removed,\n * false otherwise.\n */\n purgeStale() {\n let deleted = false;\n for (const i of this.#rindexes({ allowStale: true })) {\n if (this.#isStale(i)) {\n this.#delete(this.#keyList[i], 'expire');\n deleted = true;\n }\n }\n return deleted;\n }\n /**\n * Get the extended info about a given entry, to get its value, size, and\n * TTL info simultaneously. Returns `undefined` if the key is not present.\n *\n * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n * serialization, the `start` value is always the current timestamp, and the\n * `ttl` is a calculated remaining time to live (negative if expired).\n *\n * Always returns stale values, if their info is found in the cache, so be\n * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n * if relevant.\n */\n info(key) {\n const i = this.#keyMap.get(key);\n if (i === undefined)\n return undefined;\n const v = this.#valList[i];\n /* c8 ignore start - this isn't tested for the info function,\n * but it's the same logic as found in other places. */\n const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n if (value === undefined)\n return undefined;\n /* c8 ignore end */\n const entry = { value };\n if (this.#ttls && this.#starts) {\n const ttl = this.#ttls[i];\n const start = this.#starts[i];\n if (ttl && start) {\n const remain = ttl - (this.#perf.now() - start);\n entry.ttl = remain;\n entry.start = Date.now();\n }\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i];\n }\n return entry;\n }\n /**\n * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n * passed to {@link LRUCache#load}.\n *\n * The `start` fields are calculated relative to a portable `Date.now()`\n * timestamp, even if `performance.now()` is available.\n *\n * Stale entries are always included in the `dump`, even if\n * {@link LRUCache.OptionsBase.allowStale} is false.\n *\n * Note: this returns an actual array, not a generator, so it can be more\n * easily passed around.\n */\n dump() {\n const arr = [];\n for (const i of this.#indexes({ allowStale: true })) {\n const key = this.#keyList[i];\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n if (value === undefined || key === undefined)\n continue;\n const entry = { value };\n if (this.#ttls && this.#starts) {\n entry.ttl = this.#ttls[i];\n // always dump the start relative to a portable timestamp\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = this.#perf.now() - this.#starts[i];\n entry.start = Math.floor(Date.now() - age);\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i];\n }\n arr.unshift([key, entry]);\n }\n return arr;\n }\n /**\n * Reset the cache and load in the items in entries in the order listed.\n *\n * The shape of the resulting cache may be different if the same options are\n * not used in both caches.\n *\n * The `start` fields are assumed to be calculated relative to a portable\n * `Date.now()` timestamp, even if `performance.now()` is available.\n */\n load(arr) {\n this.clear();\n for (const [key, entry] of arr) {\n if (entry.start) {\n // entry.start is a portable timestamp, but we may be using\n // node's performance.now(), so calculate the offset, so that\n // we get the intended remaining TTL, no matter how long it's\n // been on ice.\n //\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = Date.now() - entry.start;\n entry.start = this.#perf.now() - age;\n }\n this.set(key, entry.value, entry);\n }\n }\n /**\n * Add a value to the cache.\n *\n * Note: if `undefined` is specified as a value, this is an alias for\n * {@link LRUCache#delete}\n *\n * Fields on the {@link LRUCache.SetOptions} options param will override\n * their corresponding values in the constructor options for the scope\n * of this single `set()` operation.\n *\n * If `start` is provided, then that will set the effective start\n * time for the TTL calculation. Note that this must be a previous\n * value of `performance.now()` if supported, or a previous value of\n * `Date.now()` if not.\n *\n * Options object may also include `size`, which will prevent\n * calling the `sizeCalculation` function and just use the specified\n * number if it is a positive integer, and `noDisposeOnSet` which\n * will prevent calling a `dispose` function in the case of\n * overwrites.\n *\n * If the `size` (or return value of `sizeCalculation`) for a given\n * entry is greater than `maxEntrySize`, then the item will not be\n * added to the cache.\n *\n * Will update the recency of the entry.\n *\n * If the value is `undefined`, then this is an alias for\n * `cache.delete(key)`. `undefined` is never stored in the cache.\n */\n set(k, v, setOptions = {}) {\n if (v === undefined) {\n this.delete(k);\n return this;\n }\n const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status, } = setOptions;\n let { noUpdateTTL = this.noUpdateTTL } = setOptions;\n const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);\n // if the item doesn't fit, don't do anything\n // NB: maxEntrySize set to maxSize by default\n if (this.maxEntrySize && size > this.maxEntrySize) {\n if (status) {\n status.set = 'miss';\n status.maxEntrySizeExceeded = true;\n }\n // have to delete, in case something is there already.\n this.#delete(k, 'set');\n return this;\n }\n let index = this.#size === 0 ? undefined : this.#keyMap.get(k);\n if (index === undefined) {\n // addition\n index = (this.#size === 0 ? this.#tail\n : this.#free.length !== 0 ? this.#free.pop()\n : this.#size === this.#max ? this.#evict(false)\n : this.#size);\n this.#keyList[index] = k;\n this.#valList[index] = v;\n this.#keyMap.set(k, index);\n this.#next[this.#tail] = index;\n this.#prev[index] = this.#tail;\n this.#tail = index;\n this.#size++;\n this.#addItemSize(index, size, status);\n if (status)\n status.set = 'add';\n noUpdateTTL = false;\n if (this.#hasOnInsert) {\n this.#onInsert?.(v, k, 'add');\n }\n }\n else {\n // update\n this.#moveToTail(index);\n const oldVal = this.#valList[index];\n if (v !== oldVal) {\n if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n oldVal.__abortController.abort(new Error('replaced'));\n const { __staleWhileFetching: s } = oldVal;\n if (s !== undefined && !noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(s, k, 'set');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([s, k, 'set']);\n }\n }\n }\n else if (!noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(oldVal, k, 'set');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([oldVal, k, 'set']);\n }\n }\n this.#removeItemSize(index);\n this.#addItemSize(index, size, status);\n this.#valList[index] = v;\n if (status) {\n status.set = 'replace';\n const oldValue = oldVal && this.#isBackgroundFetch(oldVal) ?\n oldVal.__staleWhileFetching\n : oldVal;\n if (oldValue !== undefined)\n status.oldValue = oldValue;\n }\n }\n else if (status) {\n status.set = 'update';\n }\n if (this.#hasOnInsert) {\n this.onInsert?.(v, k, v === oldVal ? 'update' : 'replace');\n }\n }\n if (ttl !== 0 && !this.#ttls) {\n this.#initializeTTLTracking();\n }\n if (this.#ttls) {\n if (!noUpdateTTL) {\n this.#setItemTTL(index, ttl, start);\n }\n if (status)\n this.#statusTTL(status, index);\n }\n if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n return this;\n }\n /**\n * Evict the least recently used item, returning its value or\n * `undefined` if cache is empty.\n */\n pop() {\n try {\n while (this.#size) {\n const val = this.#valList[this.#head];\n this.#evict(true);\n if (this.#isBackgroundFetch(val)) {\n if (val.__staleWhileFetching) {\n return val.__staleWhileFetching;\n }\n }\n else if (val !== undefined) {\n return val;\n }\n }\n }\n finally {\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n }\n }\n #evict(free) {\n const head = this.#head;\n const k = this.#keyList[head];\n const v = this.#valList[head];\n if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('evicted'));\n }\n else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, 'evict');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, 'evict']);\n }\n }\n this.#removeItemSize(head);\n if (this.#autopurgeTimers?.[head]) {\n clearTimeout(this.#autopurgeTimers[head]);\n this.#autopurgeTimers[head] = undefined;\n }\n // if we aren't about to use the index, then null these out\n if (free) {\n this.#keyList[head] = undefined;\n this.#valList[head] = undefined;\n this.#free.push(head);\n }\n if (this.#size === 1) {\n this.#head = this.#tail = 0;\n this.#free.length = 0;\n }\n else {\n this.#head = this.#next[head];\n }\n this.#keyMap.delete(k);\n this.#size--;\n return head;\n }\n /**\n * Check if a key is in the cache, without updating the recency of use.\n * Will return false if the item is stale, even though it is technically\n * in the cache.\n *\n * Check if a key is in the cache, without updating the recency of\n * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n * to `true` in either the options or the constructor.\n *\n * Will return `false` if the item is stale, even though it is technically in\n * the cache. The difference can be determined (if it matters) by using a\n * `status` argument, and inspecting the `has` field.\n *\n * Will not update item age unless\n * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n */\n has(k, hasOptions = {}) {\n const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v) &&\n v.__staleWhileFetching === undefined) {\n return false;\n }\n if (!this.#isStale(index)) {\n if (updateAgeOnHas) {\n this.#updateItemAge(index);\n }\n if (status) {\n status.has = 'hit';\n this.#statusTTL(status, index);\n }\n return true;\n }\n else if (status) {\n status.has = 'stale';\n this.#statusTTL(status, index);\n }\n }\n else if (status) {\n status.has = 'miss';\n }\n return false;\n }\n /**\n * Like {@link LRUCache#get} but doesn't update recency or delete stale\n * items.\n *\n * Returns `undefined` if the item is stale, unless\n * {@link LRUCache.OptionsBase.allowStale} is set.\n */\n peek(k, peekOptions = {}) {\n const { allowStale = this.allowStale } = peekOptions;\n const index = this.#keyMap.get(k);\n if (index === undefined || (!allowStale && this.#isStale(index))) {\n return;\n }\n const v = this.#valList[index];\n // either stale and allowed, or forcing a refresh of non-stale value\n return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n }\n #backgroundFetch(k, index, options, context) {\n const v = index === undefined ? undefined : this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n return v;\n }\n const ac = new AC();\n const { signal } = options;\n // when/if our AC signals, then stop listening to theirs.\n signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n signal: ac.signal,\n });\n const fetchOpts = {\n signal: ac.signal,\n options,\n context,\n };\n const cb = (v, updateCache = false) => {\n const { aborted } = ac.signal;\n const ignoreAbort = options.ignoreFetchAbort && v !== undefined;\n if (options.status) {\n if (aborted && !updateCache) {\n options.status.fetchAborted = true;\n options.status.fetchError = ac.signal.reason;\n if (ignoreAbort)\n options.status.fetchAbortIgnored = true;\n }\n else {\n options.status.fetchResolved = true;\n }\n }\n if (aborted && !ignoreAbort && !updateCache) {\n return fetchFail(ac.signal.reason);\n }\n // either we didn't abort, and are still here, or we did, and ignored\n const bf = p;\n // if nothing else has been written there but we're set to update the\n // cache and ignore the abort, or if it's still pending on this specific\n // background request, then write it to the cache.\n const vl = this.#valList[index];\n if (vl === p || (ignoreAbort && updateCache && vl === undefined)) {\n if (v === undefined) {\n if (bf.__staleWhileFetching !== undefined) {\n this.#valList[index] = bf.__staleWhileFetching;\n }\n else {\n this.#delete(k, 'fetch');\n }\n }\n else {\n if (options.status)\n options.status.fetchUpdated = true;\n this.set(k, v, fetchOpts.options);\n }\n }\n return v;\n };\n const eb = (er) => {\n if (options.status) {\n options.status.fetchRejected = true;\n options.status.fetchError = er;\n }\n return fetchFail(er);\n };\n const fetchFail = (er) => {\n const { aborted } = ac.signal;\n const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;\n const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;\n const noDelete = allowStale || options.noDeleteOnFetchRejection;\n const bf = p;\n if (this.#valList[index] === p) {\n // if we allow stale on fetch rejections, then we need to ensure that\n // the stale value is not removed from the cache when the fetch fails.\n const del = !noDelete || bf.__staleWhileFetching === undefined;\n if (del) {\n this.#delete(k, 'fetch');\n }\n else if (!allowStaleAborted) {\n // still replace the *promise* with the stale value,\n // since we are done with the promise at this point.\n // leave it untouched if we're still waiting for an\n // aborted background fetch that hasn't yet returned.\n this.#valList[index] = bf.__staleWhileFetching;\n }\n }\n if (allowStale) {\n if (options.status && bf.__staleWhileFetching !== undefined) {\n options.status.returnedStale = true;\n }\n return bf.__staleWhileFetching;\n }\n else if (bf.__returned === bf) {\n throw er;\n }\n };\n const pcall = (res, rej) => {\n const fmp = this.#fetchMethod?.(k, v, fetchOpts);\n if (fmp && fmp instanceof Promise) {\n fmp.then(v => res(v === undefined ? undefined : v), rej);\n }\n // ignored, we go until we finish, regardless.\n // defer check until we are actually aborting,\n // so fetchMethod can override.\n ac.signal.addEventListener('abort', () => {\n if (!options.ignoreFetchAbort || options.allowStaleOnFetchAbort) {\n res(undefined);\n // when it eventually resolves, update the cache.\n if (options.allowStaleOnFetchAbort) {\n res = v => cb(v, true);\n }\n }\n });\n };\n if (options.status)\n options.status.fetchDispatched = true;\n const p = new Promise(pcall).then(cb, eb);\n const bf = Object.assign(p, {\n __abortController: ac,\n __staleWhileFetching: v,\n __returned: undefined,\n });\n if (index === undefined) {\n // internal, don't expose status.\n this.set(k, bf, { ...fetchOpts.options, status: undefined });\n index = this.#keyMap.get(k);\n }\n else {\n this.#valList[index] = bf;\n }\n return bf;\n }\n #isBackgroundFetch(p) {\n if (!this.#hasFetchMethod)\n return false;\n const b = p;\n return (!!b &&\n b instanceof Promise &&\n b.hasOwnProperty('__staleWhileFetching') &&\n b.__abortController instanceof AC);\n }\n async fetch(k, fetchOptions = {}) {\n const { \n // get options\n allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, \n // set options\n ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL, \n // fetch exclusive options\n noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal, } = fetchOptions;\n if (!this.#hasFetchMethod) {\n if (status)\n status.fetch = 'get';\n return this.get(k, {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n status,\n });\n }\n const options = {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n ttl,\n noDisposeOnSet,\n size,\n sizeCalculation,\n noUpdateTTL,\n noDeleteOnFetchRejection,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n status,\n signal,\n };\n let index = this.#keyMap.get(k);\n if (index === undefined) {\n if (status)\n status.fetch = 'miss';\n const p = this.#backgroundFetch(k, index, options, context);\n return (p.__returned = p);\n }\n else {\n // in cache, maybe already fetching\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n const stale = allowStale && v.__staleWhileFetching !== undefined;\n if (status) {\n status.fetch = 'inflight';\n if (stale)\n status.returnedStale = true;\n }\n return stale ? v.__staleWhileFetching : (v.__returned = v);\n }\n // if we force a refresh, that means do NOT serve the cached value,\n // unless we are already in the process of refreshing the cache.\n const isStale = this.#isStale(index);\n if (!forceRefresh && !isStale) {\n if (status)\n status.fetch = 'hit';\n this.#moveToTail(index);\n if (updateAgeOnGet) {\n this.#updateItemAge(index);\n }\n if (status)\n this.#statusTTL(status, index);\n return v;\n }\n // ok, it is stale or a forced refresh, and not already fetching.\n // refresh the cache.\n const p = this.#backgroundFetch(k, index, options, context);\n const hasStale = p.__staleWhileFetching !== undefined;\n const staleVal = hasStale && allowStale;\n if (status) {\n status.fetch = isStale ? 'stale' : 'refresh';\n if (staleVal && isStale)\n status.returnedStale = true;\n }\n return staleVal ? p.__staleWhileFetching : (p.__returned = p);\n }\n }\n async forceFetch(k, fetchOptions = {}) {\n const v = await this.fetch(k, fetchOptions);\n if (v === undefined)\n throw new Error('fetch() returned undefined');\n return v;\n }\n memo(k, memoOptions = {}) {\n const memoMethod = this.#memoMethod;\n if (!memoMethod) {\n throw new Error('no memoMethod provided to constructor');\n }\n const { context, forceRefresh, ...options } = memoOptions;\n const v = this.get(k, options);\n if (!forceRefresh && v !== undefined)\n return v;\n const vv = memoMethod(k, v, {\n options,\n context,\n });\n this.set(k, vv, options);\n return vv;\n }\n /**\n * Return a value from the cache. Will update the recency of the cache\n * entry found.\n *\n * If the key is not found, get() will return `undefined`.\n */\n get(k, getOptions = {}) {\n const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status, } = getOptions;\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n const value = this.#valList[index];\n const fetching = this.#isBackgroundFetch(value);\n if (status)\n this.#statusTTL(status, index);\n if (this.#isStale(index)) {\n if (status)\n status.get = 'stale';\n // delete only if not an in-flight background fetch\n if (!fetching) {\n if (!noDeleteOnStaleGet) {\n this.#delete(k, 'expire');\n }\n if (status && allowStale)\n status.returnedStale = true;\n return allowStale ? value : undefined;\n }\n else {\n if (status &&\n allowStale &&\n value.__staleWhileFetching !== undefined) {\n status.returnedStale = true;\n }\n return allowStale ? value.__staleWhileFetching : undefined;\n }\n }\n else {\n if (status)\n status.get = 'hit';\n // if we're currently fetching it, we don't actually have it yet\n // it's not stale, which means this isn't a staleWhileRefetching.\n // If it's not stale, and fetching, AND has a __staleWhileFetching\n // value, then that means the user fetched with {forceRefresh:true},\n // so it's safe to return that value.\n if (fetching) {\n return value.__staleWhileFetching;\n }\n this.#moveToTail(index);\n if (updateAgeOnGet) {\n this.#updateItemAge(index);\n }\n return value;\n }\n }\n else if (status) {\n status.get = 'miss';\n }\n }\n #connect(p, n) {\n this.#prev[n] = p;\n this.#next[p] = n;\n }\n #moveToTail(index) {\n // if tail already, nothing to do\n // if head, move head to next[index]\n // else\n // move next[prev[index]] to next[index] (head has no prev)\n // move prev[next[index]] to prev[index]\n // prev[index] = tail\n // next[tail] = index\n // tail = index\n if (index !== this.#tail) {\n if (index === this.#head) {\n this.#head = this.#next[index];\n }\n else {\n this.#connect(this.#prev[index], this.#next[index]);\n }\n this.#connect(this.#tail, index);\n this.#tail = index;\n }\n }\n /**\n * Deletes a key out of the cache.\n *\n * Returns true if the key was deleted, false otherwise.\n */\n delete(k) {\n return this.#delete(k, 'delete');\n }\n #delete(k, reason) {\n let deleted = false;\n if (this.#size !== 0) {\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n if (this.#autopurgeTimers?.[index]) {\n clearTimeout(this.#autopurgeTimers?.[index]);\n this.#autopurgeTimers[index] = undefined;\n }\n deleted = true;\n if (this.#size === 1) {\n this.#clear(reason);\n }\n else {\n this.#removeItemSize(index);\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'));\n }\n else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, reason);\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, reason]);\n }\n }\n this.#keyMap.delete(k);\n this.#keyList[index] = undefined;\n this.#valList[index] = undefined;\n if (index === this.#tail) {\n this.#tail = this.#prev[index];\n }\n else if (index === this.#head) {\n this.#head = this.#next[index];\n }\n else {\n const pi = this.#prev[index];\n this.#next[pi] = this.#next[index];\n const ni = this.#next[index];\n this.#prev[ni] = this.#prev[index];\n }\n this.#size--;\n this.#free.push(index);\n }\n }\n }\n if (this.#hasDisposeAfter && this.#disposed?.length) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n return deleted;\n }\n /**\n * Clear the cache entirely, throwing away all values.\n */\n clear() {\n return this.#clear('delete');\n }\n #clear(reason) {\n for (const index of this.#rindexes({ allowStale: true })) {\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'));\n }\n else {\n const k = this.#keyList[index];\n if (this.#hasDispose) {\n this.#dispose?.(v, k, reason);\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, reason]);\n }\n }\n }\n this.#keyMap.clear();\n this.#valList.fill(undefined);\n this.#keyList.fill(undefined);\n if (this.#ttls && this.#starts) {\n this.#ttls.fill(0);\n this.#starts.fill(0);\n for (const t of this.#autopurgeTimers ?? []) {\n if (t !== undefined)\n clearTimeout(t);\n }\n this.#autopurgeTimers?.fill(undefined);\n }\n if (this.#sizes) {\n this.#sizes.fill(0);\n }\n this.#head = 0;\n this.#tail = 0;\n this.#free.length = 0;\n this.#calculatedSize = 0;\n this.#size = 0;\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n }\n}\n//# sourceMappingURL=index.js.map",
|
|
18
18
|
"import crypto from 'crypto';\nimport { LRUCache } from 'lru-cache';\nimport { getConfig } from '@/config/index.js';\n\nconst config = getConfig();\n\n// Initialize cache with a safe fallback size if disabled.\n// Actual enabling/disabling is handled in the read/write functions.\nconst cache = new LRUCache<string, string>({\n max: config.cacheSize > 0 ? config.cacheSize : 1,\n});\n\n/**\n * Generates a collision-resistant cache key from arguments.\n * Uses a null character separator to distinguish boundaries.\n */\nfunction getCacheKey(args: any[]): string {\n const hash = crypto.createHash('sha1');\n for (const arg of args) {\n hash.update(String(arg));\n // Use a null character as a separator to prevent collisions\n // e.g. [\"ab\", \"c\"] vs [\"a\", \"bc\"]\n hash.update('\\0');\n }\n return hash.digest('hex');\n}\n\nexport function readCache(args: any[]): string | null {\n if (config.cacheSize <= 0) {\n return null;\n }\n\n const key = getCacheKey(args);\n return cache.get(key) || null;\n}\n\nexport function writeCache(result: string, args: any[]): void {\n if (config.cacheSize <= 0) {\n return;\n }\n\n const key = getCacheKey(args);\n cache.set(key, result);\n}",
|
|
19
19
|
"import path from 'path';\nimport { fileURLToPath } from 'url';\nimport { readFile } from 'fs/promises';\nimport { TranslationEngine } from '@/core/engine.js';\nimport { createResourceLoader } from '@/core/factory.js';\nimport { getConfig } from '@/config/index.js';\nimport loadBergamot from '@/lib/bergamot/bergamot-translator.js';\nimport wasmPath from '@/lib/bergamot/bergamot-translator.wasm' with { type: 'file' };\nimport * as logger from '@/logger/index.js';\nimport * as models from '@/models/index.js';\nimport { detectLanguage, detectMultipleLanguages } from './detector.js';\nimport { readCache, writeCache } from '@/utils/cache.js';\n\ninterface EngineInfo {\n engine: TranslationEngine;\n lastUsed: Date;\n fromLang: string;\n toLang: string;\n timer?: NodeJS.Timeout;\n}\n\nconst engines = new Map<string, EngineInfo>();\nconst loadingPromises = new Map<string, Promise<TranslationEngine>>();\n\nfunction needsPivotTranslation(fromLang: string, toLang: string): boolean {\n if (fromLang === 'en' || toLang === 'en') {\n return false;\n }\n\n if (models.hasLanguagePair(fromLang, toLang)) {\n return false;\n }\n\n return true;\n}\n\nasync function getOrCreateSingleEngine(\n fromLang: string,\n toLang: string\n): Promise<TranslationEngine> {\n const key = `${fromLang}-${toLang}`;\n\n const existing = engines.get(key);\n if (existing) {\n existing.lastUsed = new Date();\n resetIdleTimer(existing);\n return existing.engine;\n }\n\n // Check if initialization is already in progress\n if (loadingPromises.has(key)) {\n logger.debug(`Waiting for existing engine initialization for ${key}...`);\n return loadingPromises.get(key)!;\n }\n\n const initPromise = (async () => {\n try {\n const config = getConfig();\n\n logger.info(`Creating new engine for ${fromLang} -> ${toLang}`);\n\n if (!config.enableOfflineMode) {\n logger.info(`Downloading model for ${fromLang} -> ${toLang}`);\n await models.downloadModel(toLang, fromLang);\n }\n\n const modelFiles = await models.getModelFiles(config.modelDir, fromLang, toLang);\n const langPairDir = path.join(config.modelDir, `${fromLang}_${toLang}`);\n\n const engine = new TranslationEngine();\n const loader = createResourceLoader();\n\n const currentDir = path.dirname(fileURLToPath(import.meta.url));\n const absoluteWasmPath = path.resolve(currentDir, wasmPath);\n\n logger.debug(`Loading WASM from: ${absoluteWasmPath}`);\n const wasmBinary = await readFile(absoluteWasmPath);\n logger.debug(`WASM loaded, size: ${wasmBinary.byteLength} bytes`);\n\n const bergamotModule = await loader.loadBergamotModule(wasmBinary, loadBergamot);\n\n const modelBuffers = await loader.loadModelFiles(langPairDir, {\n model: path.basename(modelFiles.model),\n lex: path.basename(modelFiles.lex),\n srcvocab: path.basename(modelFiles.vocab_src),\n trgvocab: path.basename(modelFiles.vocab_trg),\n });\n\n await engine.init(bergamotModule, modelBuffers);\n\n const info: EngineInfo = {\n engine,\n lastUsed: new Date(),\n fromLang,\n toLang,\n };\n\n resetIdleTimer(info);\n engines.set(key, info);\n\n logger.info(`Engine created successfully for ${fromLang} -> ${toLang}`);\n\n return engine;\n } finally {\n loadingPromises.delete(key);\n }\n })();\n\n loadingPromises.set(key, initPromise);\n return initPromise;\n}\n\nfunction resetIdleTimer(info: EngineInfo) {\n if (info.timer) {\n clearTimeout(info.timer);\n }\n\n const config = getConfig();\n const timeout = config.workerIdleTimeout * 1000;\n\n info.timer = setTimeout(() => {\n const key = `${info.fromLang}-${info.toLang}`;\n logger.info(`Engine ${key} idle timeout, stopping...`);\n info.engine.destroy();\n engines.delete(key);\n logger.info(`Engine ${key} stopped due to idle timeout`);\n }, timeout);\n}\n\nasync function translateSingleLanguageText(\n fromLang: string,\n toLang: string,\n text: string,\n isHTML: boolean\n): Promise<string> {\n const cacheKey = [fromLang, toLang, text, isHTML];\n const cached = readCache(cacheKey);\n if (cached !== null) {\n logger.debug(`Cache hit: ${fromLang} -> ${toLang}, text length: ${text.length}`);\n return cached;\n }\n\n const MAX_RETRIES = 3;\n let lastError: any;\n\n for (let i = 0; i < MAX_RETRIES; i++) {\n try {\n const engine = await getOrCreateSingleEngine(fromLang, toLang);\n const result = await engine.translateAsync(text, { html: isHTML });\n writeCache(result, cacheKey);\n return result;\n } catch (error: any) {\n lastError = error;\n const isSIMDError = error.message && (\n error.message.includes('wasm-simd is not enabled') ||\n error.message.includes('SIMD') ||\n (error.message.includes('CompileError') && error.message.includes('WebAssembly'))\n );\n const isMemoryError = error.message && (\n error.message.includes('Out of bounds memory access') ||\n error.message.includes('memory access out of bounds') ||\n error.message.includes('unreachable') ||\n error.message.includes('abort')\n );\n\n if (isMemoryError) {\n logger.warn(`WASM memory error during translation (${fromLang}->${toLang}), retrying (${i + 1}/${MAX_RETRIES})...`);\n\n const key = `${fromLang}-${toLang}`;\n const info = engines.get(key);\n if (info) {\n logger.warn(`Destroying crashed engine: ${key}`);\n info.engine.destroy();\n engines.delete(key);\n }\n\n await new Promise(resolve => setTimeout(resolve, 100 * (i + 1)));\n continue;\n }\n\n if (isSIMDError) {\n logger.fatal('WebAssembly SIMD is not supported on this CPU.');\n logger.fatal('If you are using the standard build, please download and use the legacy build for non-AVX2 CPUs:');\n logger.fatal(' - Binary: mtranserver-*-legacy');\n logger.fatal(' - Docker: xxnuo/mtranserver:legacy');\n logger.fatal('If you are already using the legacy build, sorry your CPU is too old to run MTranServer.');\n process.exit(1);\n }\n throw error;\n }\n }\n\n logger.error(`Failed to translate after ${MAX_RETRIES} retries: ${lastError.message}`);\n throw lastError;\n}\n\nasync function translateSegment(\n fromLang: string,\n toLang: string,\n text: string,\n isHTML: boolean\n): Promise<string> {\n if (fromLang === toLang) {\n return text;\n }\n\n if (!needsPivotTranslation(fromLang, toLang)) {\n return translateSingleLanguageText(fromLang, toLang, text, isHTML);\n }\n\n const intermediateText = await translateSingleLanguageText(fromLang, 'en', text, isHTML);\n return translateSingleLanguageText('en', toLang, intermediateText, isHTML);\n}\n\nexport async function translateWithPivot(\n fromLang: string,\n toLang: string,\n text: string,\n isHTML: boolean = false\n): Promise<string> {\n logger.debug(\n `TranslateWithPivot: ${fromLang} -> ${toLang}, text length: ${text.length}, isHTML: ${isHTML}`\n );\n\n if (fromLang !== 'auto' && fromLang === toLang) {\n return text;\n }\n\n if (fromLang !== 'auto' && text.length <= 128) {\n return translateSegment(fromLang, toLang, text, isHTML);\n }\n\n const config = getConfig();\n const segments = await detectMultipleLanguages(text);\n\n if (segments.length <= 1) {\n let effectiveFromLang: string;\n if (segments.length === 1) {\n effectiveFromLang = segments[0].language;\n } else if (fromLang === 'auto') {\n const detected = await detectLanguage(text);\n if (!detected) {\n throw new Error('Failed to detect source language');\n }\n effectiveFromLang = detected;\n } else {\n effectiveFromLang = fromLang;\n }\n\n if (effectiveFromLang === toLang) {\n return text;\n }\n\n if (text.length > config.maxLengthBreak && !isHTML) {\n return translateLongText(effectiveFromLang, toLang, text);\n }\n\n return translateSegment(effectiveFromLang, toLang, text, isHTML);\n }\n\n logger.debug(`Detected ${segments.length} language segments`);\n let result = '';\n let lastEnd = 0;\n\n for (const seg of segments) {\n if (seg.start > lastEnd) {\n result += text.substring(lastEnd, seg.start);\n }\n\n if (seg.language === toLang) {\n result += seg.text;\n } else {\n try {\n const translated = await translateSegment(seg.language, toLang, seg.text, isHTML);\n result += translated;\n } catch (error) {\n logger.error(`Failed to translate segment: ${error}`);\n result += seg.text;\n }\n }\n lastEnd = seg.end;\n }\n\n if (lastEnd < text.length) {\n result += text.substring(lastEnd);\n }\n\n return result;\n}\n\nasync function translateLongText(\n fromLang: string,\n toLang: string,\n text: string\n): Promise<string> {\n logger.debug(`Splitting long text (${text.length} chars) into sentences`);\n\n const segmenterAny = new (Intl as any).Segmenter(undefined, { granularity: 'sentence' });\n const sentences = Array.from(segmenterAny.segment(text)) as Array<{ segment: string, index: number }>;\n\n logger.debug(`Split into ${sentences.length} sentences`);\n\n const results: string[] = [];\n\n for (let i = 0; i < sentences.length; i++) {\n const { segment } = sentences[i];\n try {\n const translated = await translateSegment(fromLang, toLang, segment, false);\n results.push(translated);\n\n if ((i + 1) % 10 === 0) {\n logger.debug(`Translated ${i + 1}/${sentences.length} sentences`);\n }\n } catch (error) {\n logger.error(`Failed to translate sentence ${i + 1}: ${error}`);\n results.push(segment);\n }\n }\n\n return results.join('');\n}\n\nexport function cleanupAllEngines() {\n logger.info(`Cleaning up ${engines.size} engine(s)...`);\n\n for (const [key, info] of engines.entries()) {\n if (info.timer) {\n clearTimeout(info.timer);\n }\n info.engine.destroy();\n logger.debug(`Stopped engine: ${key}`);\n }\n\n engines.clear();\n logger.info('All engines cleaned up successfully');\n}\n",
|
|
20
20
|
"export * from './engine.js';\nexport * from './detector.js';\n",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"import { setConfig, getConfig, Config } from '@/config/index.js';\nimport { initRecords, downloadModel } from '@/models/index.js';\nimport { translateWithPivot, cleanupAllEngines } from '@/services/index.js';\nimport { detectLanguage } from '@/services/detector.js';\nimport { NormalizeLanguageCode } from '@/utils/index.js';\n\nexport interface MTranConfig extends Partial<Config> { }\n\nexport class MTran {\n constructor(config?: MTranConfig) {\n if (config) {\n setConfig(config);\n }\n }\n\n /**\n * Initialize the translation engine (load records, etc.)\n */\n async init(): Promise<void> {\n await initRecords();\n }\n\n /**\n * Translate text\n * @param from Source language code (or 'auto')\n * @param to Target language code\n * @param text Text to translate\n * @param html Whether the text is HTML (default: false)\n */\n async translate(from: string, to: string, text: string, html: boolean = false): Promise<string> {\n const normalizedFrom = from === 'auto' ? 'auto' : NormalizeLanguageCode(from);\n const normalizedTo = NormalizeLanguageCode(to);\n return translateWithPivot(normalizedFrom, normalizedTo, text, html);\n }\n\n /**\n * Detect language of the text\n * @param text Text to analyze\n */\n async detect(text: string): Promise<string | null> {\n return detectLanguage(text);\n }\n\n /**\n * Ensure model is downloaded for a language pair\n * @param from Source language\n * @param to Target language\n */\n async downloadModel(from: string, to: string): Promise<void> {\n const normalizedFrom = NormalizeLanguageCode(from);\n const normalizedTo = NormalizeLanguageCode(to);\n await downloadModel(normalizedTo, normalizedFrom);\n }\n\n /**\n * Clean up all loaded engines and release memory\n */\n async close(): Promise<void> {\n cleanupAllEngines();\n }\n\n /**\n * Get current configuration\n */\n getConfig(): Config {\n return getConfig();\n }\n}\n",
|
|
26
26
|
"export * from '@/mtran.js';\nexport * from '@/config/index.js';\nexport * from '@/models/index.js';\nexport * from '@/utils/index.js';\n// Exclude server, middleware, and generated routes from library export to avoid asset dependency issues\n"
|
|
27
27
|
],
|
|
28
|
-
"mappings": "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",
|
|
29
|
-
"debugId": "
|
|
28
|
+
"mappings": "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",
|
|
29
|
+
"debugId": "370A66A1D6D9E42264756E2164756E21",
|
|
30
30
|
"names": []
|
|
31
31
|
}
|