mtranserver 4.0.24 → 4.0.25
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 +0 -3
- package/dist/main.js +2 -5
- package/package.json +1 -1
- package/dist/index.js.map +0 -29
- package/dist/main.js.map +0 -397
package/dist/index.js.map
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/config/index.ts", "../src/logger/index.ts", "../src/core/loader.ts", "../src/core/factory.ts", "../src/utils/version.ts", "../src/models/records.ts", "../src/models/index.ts", "../src/core/engine.ts", "../src/lib/bergamot/bergamot-translator.js", "../src/lib/cld2/cld2.js", "../src/services/detector.ts", "../src/utils/cache.ts", "../src/services/engine.ts", "../src/services/index.ts", "../src/utils/lang-alias.ts", "../src/utils/port.ts", "../src/utils/memory.ts", "../src/utils/index.ts", "../src/mtran.ts", "../src/index.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\n\nexport interface Config {\n logLevel: string;\n homeDir: string;\n configDir: string;\n modelDir: string;\n host: string;\n port: string;\n enableWebUI: boolean;\n enableOfflineMode: boolean;\n workerIdleTimeout: number;\n workersPerLanguage: number;\n apiToken: string;\n logDir: string;\n logToFile: boolean;\n logConsole: boolean;\n logRequests: boolean;\n maxLengthBreak: number;\n checkUpdate: boolean;\n cacheSize: number;\n}\n\nlet globalConfig: Config | null = null;\nlet fileConfigCache: Partial<Config> | null = null;\n\nfunction getConfigFilePath(homeDir: string) {\n return path.join(homeDir, 'server.json');\n}\n\nfunction readConfigFile(homeDir: string): Partial<Config> {\n if (fileConfigCache) return fileConfigCache;\n const configPath = getConfigFilePath(homeDir);\n try {\n const raw = fs.readFileSync(configPath, 'utf8');\n const parsed = JSON.parse(raw);\n if (parsed && typeof parsed === 'object') {\n fileConfigCache = parsed as Partial<Config>;\n return fileConfigCache;\n }\n } catch {\n return {};\n }\n return {};\n}\n\nfunction getArgValue(flag: string): string | null {\n const index = process.argv.indexOf(flag);\n if (index > -1 && index + 1 < process.argv.length) {\n const nextArg = process.argv[index + 1];\n if (!nextArg.startsWith('-')) {\n return nextArg;\n }\n }\n for (const arg of process.argv) {\n if (arg.startsWith(`${flag}=`)) {\n return arg.split('=')[1];\n }\n }\n return null;\n}\n\nfunction hasFlag(flag: string): boolean {\n return process.argv.includes(flag);\n}\n\nfunction getString(flag: string, envKey: string, defaultValue: string): string {\n const argVal = getArgValue(flag);\n if (argVal !== null) return argVal;\n return process.env[envKey] || defaultValue;\n}\n\nfunction getBool(flag: string, envKey: string, defaultValue: boolean): boolean {\n if (process.argv.includes(flag)) return true;\n const val = getArgValue(flag);\n if (val !== null) return val.toLowerCase() === 'true' || val === '1';\n\n const noFlag = `--no-${flag.replace(/^--/, '')}`;\n if (process.argv.includes(noFlag)) return false;\n\n const envVal = process.env[envKey];\n if (envVal !== undefined) {\n return envVal.toLowerCase() === 'true' || envVal === '1';\n }\n return defaultValue;\n}\n\nfunction getInt(flag: string, envKey: string, defaultValue: number): number {\n const argVal = getArgValue(flag);\n if (argVal !== null) {\n const parsed = parseInt(argVal, 10);\n if (!isNaN(parsed)) return parsed;\n }\n\n const envVal = process.env[envKey];\n if (envVal !== undefined) {\n const parsed = parseInt(envVal, 10);\n if (!isNaN(parsed)) return parsed;\n }\n\n return defaultValue;\n}\n\nexport function getConfig(): Config {\n if (globalConfig !== null) {\n return globalConfig;\n }\n\n const homeDir = path.join(os.homedir(), '.config', 'mtran');\n const fileConfig = readConfigFile(homeDir);\n\n const configDir = getString('--config-dir', 'MT_CONFIG_DIR', fileConfig.configDir || path.join(homeDir, 'server'));\n const localModelsDir = path.join(process.cwd(), 'models');\n const defaultModelDir = fs.existsSync(localModelsDir) ? localModelsDir : path.join(homeDir, 'models');\n const modelDir = getString('--model-dir', 'MT_MODEL_DIR', fileConfig.modelDir || defaultModelDir);\n const logDir = getString('--log-dir', 'MT_LOG_DIR', fileConfig.logDir || path.join(homeDir, 'logs'));\n\n globalConfig = {\n homeDir,\n configDir,\n modelDir,\n logDir,\n\n logLevel: getString('--log-level', 'MT_LOG_LEVEL', fileConfig.logLevel || 'warn'),\n host: getString('--host', 'MT_HOST', fileConfig.host || '0.0.0.0'),\n port: getString('--port', 'MT_PORT', fileConfig.port || '8989'),\n\n enableWebUI: getBool('--ui', 'MT_ENABLE_UI', fileConfig.enableWebUI ?? true),\n enableOfflineMode: getBool('--offline', 'MT_OFFLINE', fileConfig.enableOfflineMode ?? false),\n\n workerIdleTimeout: getInt('--worker-idle-timeout', 'MT_WORKER_IDLE_TIMEOUT', fileConfig.workerIdleTimeout ?? 60),\n workersPerLanguage: getInt('--workers-per-language', 'MT_WORKERS_PER_LANGUAGE', fileConfig.workersPerLanguage ?? 1),\n maxLengthBreak: getInt('--max-length-break', 'MT_MAX_LENGTH_BREAK', fileConfig.maxLengthBreak ?? 128),\n\n apiToken: getString('--api-token', 'MT_API_TOKEN', fileConfig.apiToken || ''),\n\n logToFile: getBool('--log-to-file', 'MT_LOG_TO_FILE', fileConfig.logToFile ?? false),\n logConsole: getBool('--log-console', 'MT_LOG_CONSOLE', fileConfig.logConsole ?? true),\n logRequests: getBool('--log-requests', 'MT_LOG_REQUESTS', fileConfig.logRequests ?? false),\n\n checkUpdate: getBool('--check-update', 'MT_CHECK_UPDATE', fileConfig.checkUpdate ?? true),\n\n cacheSize: getInt('--cache-size', 'MT_CACHE_SIZE', fileConfig.cacheSize ?? 1000),\n };\n\n return globalConfig;\n}\n\nexport function setConfig(config: Partial<Config>) {\n const current = getConfig();\n globalConfig = { ...current, ...config };\n}\n\nexport function resetConfig() {\n globalConfig = null;\n fileConfigCache = null;\n}\n\nexport function saveConfigFile(config: Partial<Config>) {\n const current = getConfig();\n const next = { ...current, ...config };\n const configPath = getConfigFilePath(current.homeDir);\n fs.mkdirSync(current.homeDir, { recursive: true });\n fs.writeFileSync(configPath, JSON.stringify(next, null, 2), 'utf8');\n fileConfigCache = next;\n}\n\nexport function clearConfigFile() {\n const homeDir = path.join(os.homedir(), '.config', 'mtran');\n const configPath = getConfigFilePath(homeDir);\n try {\n if (fs.existsSync(configPath)) {\n fs.unlinkSync(configPath);\n }\n } catch {\n return;\n }\n}\n",
|
|
6
|
-
"import fs from 'fs';\nimport path from 'path';\nimport util from 'util';\nimport { getConfig } from '@/config/index.js';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\nconst logLevels: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n};\n\nconst colors = {\n reset: '\\x1b[0m',\n cyan: '\\x1b[36m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n red: '\\x1b[31m',\n};\n\nlet currentLogLevel: LogLevel | null = null;\n\n// File logging state\nlet logStream: fs.WriteStream | null = null;\nlet currentLogDate = '';\n\nexport function setLogLevel(level: LogLevel) {\n currentLogLevel = level;\n}\n\nexport function getLogLevel(): string {\n if (currentLogLevel === null) {\n const config = getConfig();\n currentLogLevel = (config.logLevel as LogLevel) || 'warn';\n }\n return currentLogLevel;\n}\n\nfunction shouldLog(level: LogLevel): boolean {\n const currentLevel = getLogLevel() as LogLevel;\n return logLevels[level] >= logLevels[currentLevel];\n}\n\nfunction getTimestamp(): string {\n return new Date().toISOString().replace('T', ' ').replace('Z', '');\n}\n\nfunction getLogStream() {\n const config = getConfig();\n if (!config.logToFile) return null;\n\n const today = new Date().toISOString().split('T')[0];\n if (currentLogDate !== today || !logStream) {\n if (logStream) {\n logStream.end();\n }\n if (!fs.existsSync(config.logDir)) {\n try {\n fs.mkdirSync(config.logDir, { recursive: true });\n } catch (err) {\n console.error(`Failed to create log directory: ${config.logDir}`, err);\n return null;\n }\n }\n const logPath = path.join(config.logDir, `mtran-${today}.log`);\n try {\n logStream = fs.createWriteStream(logPath, { flags: 'a' });\n currentLogDate = today;\n } catch (err) {\n console.error(`Failed to create log stream: ${logPath}`, err);\n return null;\n }\n }\n return logStream;\n}\n\nfunction logInternal(level: LogLevel, color: string, force: boolean, message: string, ...args: any[]) {\n if (!force && !shouldLog(level)) return;\n\n const timestamp = getTimestamp();\n const formattedMessage = util.format(message, ...args);\n \n const config = getConfig();\n\n // Console output (with colors)\n if (config.logConsole) {\n const consoleOutput = `${color}[${level.toUpperCase()}]${colors.reset} ${timestamp} ${formattedMessage}`;\n if (level === 'error' || level === 'warn') {\n console.error(consoleOutput);\n } else {\n console.log(consoleOutput);\n }\n }\n\n // File output (without colors)\n const stream = getLogStream();\n if (stream) {\n const fileOutput = `[${level.toUpperCase()}] ${timestamp} ${formattedMessage}\\n`;\n stream.write(fileOutput);\n }\n}\n\nfunction log(level: LogLevel, color: string, message: string, ...args: any[]) {\n logInternal(level, color, false, message, ...args);\n}\n\nexport function debug(message: string, ...args: any[]) {\n log('debug', colors.cyan, message, ...args);\n}\n\nexport function info(message: string, ...args: any[]) {\n log('info', colors.green, message, ...args);\n}\n\nexport function important(message: string, ...args: any[]) {\n logInternal('info', colors.green, true, message, ...args);\n}\n\nexport function warn(message: string, ...args: any[]) {\n log('warn', colors.yellow, message, ...args);\n}\n\nexport function error(message: string, ...args: any[]) {\n log('error', colors.red, message, ...args);\n}\n\nexport function fatal(message: string, ...args: any[]) {\n log('error', colors.red, message, ...args);\n process.exit(1);\n}\n\nexport default {\n setLogLevel,\n getLogLevel,\n debug,\n info,\n important,\n warn,\n error,\n fatal,\n};",
|
|
7
|
-
"import { FileSystem, BergamotModule } from '@/core/interfaces.js';\nimport logger from '@/logger/index.js';\n\nexport interface ModelFileNames {\n model?: string;\n lex?: string;\n srcvocab?: string;\n trgvocab?: string;\n}\n\nexport interface ModelBuffers {\n model: Buffer;\n lex: Buffer;\n srcvocab: Buffer;\n trgvocab: Buffer;\n qualityModel?: Buffer;\n}\n\nexport class ResourceLoader {\n constructor(private fileSystem: FileSystem) {}\n\n async loadBergamotModule(wasmBinary: ArrayBuffer | Buffer, loadBergamot: any): Promise<BergamotModule> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n reject(new Error('WASM initialization timeout'));\n }, 30000);\n\n logger.info('[Bergamot] Loading WASM, binary size:', wasmBinary.byteLength);\n\n loadBergamot({\n wasmBinary: wasmBinary,\n print: (msg: string) => logger.debug(`[Bergamot]: ${msg}`),\n printErr: (msg: string) => logger.error(`[Bergamot Error]: ${msg}`),\n onRuntimeInitialized: function(this: BergamotModule) {\n logger.info('[Bergamot] Runtime initialized successfully');\n clearTimeout(timeout);\n resolve(this);\n },\n onAbort: (msg: string) => {\n logger.error('[Bergamot] Aborted:', msg);\n clearTimeout(timeout);\n reject(new Error(`WASM aborted: ${msg}`));\n }\n });\n });\n }\n\n async loadModelFiles(modelPath: string, fileNames: ModelFileNames | null = null): Promise<ModelBuffers> {\n const defaultFiles: Required<ModelFileNames> = {\n model: 'model.enzh.intgemm.alphas.bin',\n lex: 'lex.50.50.enzh.s2t.bin',\n srcvocab: 'srcvocab.enzh.spm',\n trgvocab: 'trgvocab.enzh.spm'\n };\n\n const files = { ...defaultFiles, ...fileNames };\n const buffers: Partial<ModelBuffers> = {};\n\n for (const [key, filename] of Object.entries(files)) {\n const filepath = this.fileSystem.joinPath(modelPath, filename);\n if (await this.fileSystem.fileExists(filepath)) {\n buffers[key as keyof ModelBuffers] = await this.fileSystem.readFile(filepath);\n } else {\n throw new Error(`Model file not found: ${filepath}`);\n }\n }\n\n return buffers as ModelBuffers;\n }\n\n async loadWasmBinary(wasmPath: string): Promise<Buffer> {\n return this.fileSystem.readFile(wasmPath);\n }\n}\n",
|
|
8
|
-
"import fs from 'fs/promises'\nimport path from 'path'\nimport { decompress } from 'fzstd'\nimport { ResourceLoader } from '@/core/loader.js'\nimport { FileSystem } from '@/core/interfaces.js'\n\nexport interface DownloadOptions {\n url: string\n outputPath: string\n hash?: string\n}\n\nexport class Downloader {\n private timeout: number\n\n constructor(timeout: number = 1800000) {\n this.timeout = timeout\n }\n\n async download(options: DownloadOptions): Promise<void> {\n const { url, outputPath, hash } = options\n\n if (hash) {\n try {\n await fs.access(outputPath)\n return\n } catch {\n }\n }\n\n const data = await this.downloadBinary(url)\n await fs.writeFile(outputPath, data)\n }\n\n async decompress(inputPath: string, outputPath: string): Promise<void> {\n const compressedData = await fs.readFile(inputPath)\n const decompressed = decompress(compressedData)\n await fs.writeFile(outputPath, decompressed)\n }\n\n private async downloadBinary(url: string): Promise<Buffer> {\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), this.timeout)\n\n try {\n const response = await fetch(url, {\n signal: controller.signal,\n headers: {\n 'User-Agent': 'MTranServer/4.0.0'\n }\n })\n\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}: ${response.statusText}`)\n }\n\n const arrayBuffer = await response.arrayBuffer()\n return Buffer.from(arrayBuffer)\n } finally {\n clearTimeout(timeoutId)\n }\n }\n}\n\nexport function createDownloader(): Downloader {\n return new Downloader()\n}\n\nclass NodeFileSystem implements FileSystem {\n async readFile(filePath: string): Promise<Buffer> {\n return fs.readFile(filePath)\n }\n\n async fileExists(filePath: string): Promise<boolean> {\n try {\n await fs.access(filePath)\n return true\n } catch {\n return false\n }\n }\n\n joinPath(...paths: string[]): string {\n return path.join(...paths)\n }\n}\n\nexport function createResourceLoader(): ResourceLoader {\n return new ResourceLoader(new NodeFileSystem())\n}\n\n",
|
|
9
|
-
"export function getLargestVersion(versions: string[]): string {\n if (versions.length === 0) return '';\n if (versions.length === 1) return versions[0];\n\n return versions.reduce((max, current) => {\n return compareVersions(current, max) > 0 ? current : max;\n });\n}\n\nfunction compareVersions(v1: string, v2: string): number {\n const parts1 = v1.split('.').map(p => parseInt(p, 10) || 0);\n const parts2 = v2.split('.').map(p => parseInt(p, 10) || 0);\n\n const maxLength = Math.max(parts1.length, parts2.length);\n\n for (let i = 0; i < maxLength; i++) {\n const p1 = parts1[i] || 0;\n const p2 = parts2[i] || 0;\n\n if (p1 > p2) return 1;\n if (p1 < p2) return -1;\n }\n\n return 0;\n}\n",
|
|
10
|
-
"import crypto from 'crypto';\nimport fs from 'fs/promises';\nimport path from 'path';\nimport { createDownloader } from '@/core/factory.js';\nimport { getConfig } from '@/config/index.js';\nimport * as logger from '@/logger/index.js';\nimport { getLargestVersion } from '@/utils/version.js';\n\nconst RECORDS_URL = 'https://firefox.settings.services.mozilla.com/v1/buckets/main-preview/collections/translations-models-v2/records';\nconst ATTACHMENTS_BASE_URL = 'https://firefox-settings-attachments.cdn.mozilla.net';\n\nexport interface Attachment {\n hash: string;\n size: number;\n filename: string;\n location: string;\n mimetype: string;\n}\n\nexport interface RecordItem {\n name: string;\n schema: number;\n version: string;\n fileType: string;\n attachment: Attachment;\n architecture?: string;\n sourceLanguage: string;\n targetLanguage: string;\n decompressedHash?: string;\n decompressedSize?: number;\n filter_expression?: string;\n id: string;\n last_modified: number;\n}\n\nexport interface RecordsData {\n data: RecordItem[];\n}\n\nexport let globalRecords: RecordsData | null = null;\n\nexport function hasLanguagePair(fromLang: string, toLang: string): boolean {\n if (!globalRecords) return false;\n return globalRecords.data.some(\n r => r.sourceLanguage === fromLang && r.targetLanguage === toLang\n );\n}\n\nexport function getLanguagePairs(): string[] {\n if (!globalRecords) return [];\n const pairs = new Set<string>();\n for (const record of globalRecords.data) {\n pairs.add(`${record.sourceLanguage}_${record.targetLanguage}`);\n }\n return Array.from(pairs);\n}\n\nexport function getSupportedLanguages(): string[] {\n if (!globalRecords) return [];\n const langs = new Set<string>();\n for (const record of globalRecords.data) {\n langs.add(record.sourceLanguage);\n langs.add(record.targetLanguage);\n }\n return Array.from(langs);\n}\n\nfunction computeHash(data: Buffer): string {\n return crypto.createHash('sha256').update(data).digest('hex');\n}\n\nasync function computeFileHash(filePath: string): Promise<string> {\n const data = await fs.readFile(filePath);\n return computeHash(data);\n}\n\nexport async function initRecords(): Promise<void> {\n const config = getConfig();\n const recordsPath = path.join(config.configDir, 'records.json');\n\n await fs.mkdir(config.configDir, { recursive: true });\n await fs.mkdir(config.modelDir, { recursive: true });\n\n if (config.enableOfflineMode) {\n logger.info('Offline mode enabled, records must be pre-downloaded');\n try {\n const data = await fs.readFile(recordsPath, 'utf-8');\n globalRecords = JSON.parse(data);\n if (globalRecords) {\n logger.debug(`Loaded ${globalRecords.data.length} model records`);\n }\n } catch (err) {\n throw new Error(`Failed to load records in offline mode: ${err}`);\n }\n return;\n }\n\n logger.info('Downloading latest records.json from remote...');\n try {\n const downloader = createDownloader();\n await downloader.download({\n url: RECORDS_URL,\n outputPath: recordsPath,\n });\n\n const data = await fs.readFile(recordsPath, 'utf-8');\n globalRecords = JSON.parse(data);\n if (globalRecords) {\n logger.debug(`Loaded ${globalRecords.data.length} model records`);\n }\n } catch (err) {\n logger.warn(`Failed to download records.json: ${err}`);\n throw err;\n }\n}\n\nexport async function downloadModel(\n toLang: string,\n fromLang: string,\n version?: string\n): Promise<void> {\n if (!globalRecords) {\n await initRecords();\n }\n\n if (!globalRecords) {\n throw new Error('Records not initialized');\n }\n\n const matchedRecords = globalRecords.data.filter(\n r =>\n r.targetLanguage === toLang &&\n r.sourceLanguage === fromLang &&\n (!version || r.version === version)\n );\n\n if (matchedRecords.length === 0) {\n throw new Error(`No model found for ${fromLang} -> ${toLang}`);\n }\n\n let targetRecords = matchedRecords;\n if (!version) {\n const fileTypeMap = new Map<string, RecordItem[]>();\n for (const record of matchedRecords) {\n const arr = fileTypeMap.get(record.fileType) || [];\n arr.push(record);\n fileTypeMap.set(record.fileType, arr);\n }\n\n targetRecords = [];\n for (const records of fileTypeMap.values()) {\n const versions = records.map(r => r.version);\n const latest = getLargestVersion(versions);\n const latestRecord = records.find(r => r.version === latest);\n if (latestRecord) targetRecords.push(latestRecord);\n }\n }\n\n const config = getConfig();\n const langPairDir = path.join(config.modelDir, `${fromLang}_${toLang}`);\n await fs.mkdir(langPairDir, { recursive: true });\n\n logger.info(`Downloading model files for ${fromLang} -> ${toLang}`);\n\n const downloader = createDownloader();\n\n for (const record of targetRecords) {\n const filename = record.attachment.filename;\n const fileUrl = `${ATTACHMENTS_BASE_URL}/${record.attachment.location}`;\n const compressedPath = path.join(langPairDir, filename);\n const decompressedFilename = filename.replace(/\\.zst$/, '');\n const decompressedPath = path.join(langPairDir, decompressedFilename);\n\n let needDownload = false;\n try {\n await fs.access(decompressedPath);\n if (record.decompressedHash) {\n const localHash = await computeFileHash(decompressedPath);\n if (localHash !== record.decompressedHash) {\n logger.info(`Model file ${decompressedFilename} hash mismatch, updating...`);\n needDownload = true;\n }\n }\n } catch {\n needDownload = true;\n }\n\n if (!needDownload) {\n logger.debug(`Model file up to date: ${decompressedFilename}`);\n continue;\n }\n\n logger.debug(`Downloading model file: ${filename} (type: ${record.fileType})`);\n await downloader.download({\n url: fileUrl,\n outputPath: compressedPath,\n });\n\n if (filename.endsWith('.zst')) {\n logger.debug(`Decompressing: ${filename} -> ${decompressedFilename}`);\n await downloader.decompress(compressedPath, decompressedPath);\n await fs.unlink(compressedPath);\n }\n }\n\n logger.info(`Model files downloaded successfully for ${fromLang} -> ${toLang}`);\n}\n\nexport async function getModelFiles(\n modelDir: string,\n fromLang: string,\n toLang: string\n): Promise<Record<string, string>> {\n if (!globalRecords) {\n await initRecords();\n }\n\n if (!globalRecords) {\n throw new Error('Records not initialized');\n }\n\n const langPairDir = path.join(modelDir, `${fromLang}_${toLang}`);\n const fileTypeMap = new Map<string, string>();\n\n for (const record of globalRecords.data) {\n if (record.sourceLanguage === fromLang && record.targetLanguage === toLang) {\n const filename = record.attachment.filename.replace(/\\.zst$/, '');\n const fullPath = path.join(langPairDir, filename);\n\n try {\n await fs.access(fullPath);\n fileTypeMap.set(record.fileType, fullPath);\n } catch {\n }\n }\n }\n\n const files: Record<string, string> = {};\n\n const modelPath = fileTypeMap.get('model');\n if (!modelPath) {\n throw new Error(`Model file not found for ${fromLang} -> ${toLang}`);\n }\n files.model = modelPath;\n\n const lexPath = fileTypeMap.get('lex');\n if (!lexPath) {\n throw new Error(`Lex file not found for ${fromLang} -> ${toLang}`);\n }\n files.lex = lexPath;\n\n const vocabPath = fileTypeMap.get('vocab');\n if (vocabPath) {\n files.vocab_src = vocabPath;\n files.vocab_trg = vocabPath;\n } else {\n const srcVocabPath = fileTypeMap.get('srcvocab');\n if (!srcVocabPath) {\n throw new Error(`Source vocab file not found for ${fromLang} -> ${toLang}`);\n }\n files.vocab_src = srcVocabPath;\n\n const trgVocabPath = fileTypeMap.get('trgvocab');\n if (!trgVocabPath) {\n throw new Error(`Target vocab file not found for ${fromLang} -> ${toLang}`);\n }\n files.vocab_trg = trgVocabPath;\n }\n\n return files;\n}\n",
|
|
11
|
-
"export * from './records.js';\n",
|
|
12
|
-
"import { BergamotModule } from '@/core/interfaces.js';\nimport { ModelBuffers } from '@/core/loader.js';\n\nexport interface TranslationOptions {\n sourceLang?: string;\n targetLang?: string;\n cacheSize?: number;\n}\n\nexport interface TranslateOptions {\n qualityScores?: boolean;\n alignment?: boolean;\n html?: boolean;\n}\n\nexport interface TranslationConfig {\n 'beam-size'?: number;\n 'normalize'?: number;\n 'word-penalty'?: number;\n 'max-length-break'?: number;\n 'mini-batch-words'?: number;\n 'workspace'?: number;\n 'max-length-factor'?: number;\n 'skip-cost'?: boolean;\n 'cpu-threads'?: number;\n 'quiet'?: boolean;\n 'quiet-translation'?: boolean;\n 'gemm-precision'?: string;\n 'alignment'?: string;\n}\n\ninterface QueueTask {\n text: string;\n options: TranslateOptions;\n resolve: (value: string) => void;\n reject: (reason: any) => void;\n}\n\nexport class TranslationEngine {\n private options: TranslationOptions;\n private bergamot: BergamotModule | null = null;\n private service: any = null;\n private model: any = null;\n private isReady = false;\n private translating = false;\n private pendingQueue: QueueTask[] = [];\n private maxLengthBreak = 128;\n\n constructor(options: TranslationOptions = {}) {\n this.options = options;\n }\n\n async init(bergamotModule: BergamotModule, modelBuffers: ModelBuffers, config: TranslationConfig = {}): Promise<void> {\n if (this.isReady) return;\n\n this.bergamot = bergamotModule;\n\n const defaultConfig: TranslationConfig = {\n 'beam-size': 1,\n 'normalize': 1.0,\n 'word-penalty': 0,\n 'max-length-break': 128,\n 'mini-batch-words': 1024,\n 'workspace': 128,\n 'max-length-factor': 2.0,\n 'skip-cost': true,\n 'cpu-threads': 0,\n 'quiet': true,\n 'quiet-translation': true,\n 'gemm-precision': 'int8shiftAlphaAll',\n 'alignment': 'soft'\n };\n\n const mergedConfig = { ...defaultConfig, ...config };\n this.maxLengthBreak = mergedConfig['max-length-break'] || 128;\n\n const MODEL_FILE_ALIGNMENTS: Record<string, number> = {\n model: 256,\n lex: 64,\n srcvocab: 64,\n trgvocab: 64,\n };\n\n const alignedMemories: Record<string, any> = {};\n for (const [key, buffer] of Object.entries(modelBuffers)) {\n const alignment = MODEL_FILE_ALIGNMENTS[key] || 64;\n const alignedMemory = new this.bergamot.AlignedMemory(buffer.byteLength || buffer.length, alignment);\n const view = alignedMemory.getByteArrayView();\n view.set(new Uint8Array(buffer));\n alignedMemories[key] = alignedMemory;\n }\n\n const vocabList = new this.bergamot.AlignedMemoryList();\n vocabList.push_back(alignedMemories.srcvocab);\n vocabList.push_back(alignedMemories.trgvocab);\n\n const configStr = Object.entries(mergedConfig)\n .map(([k, v]) => `${k}: ${v}`)\n .join('\\n');\n\n this.model = new this.bergamot.TranslationModel(\n this.options.sourceLang || \"en\",\n this.options.targetLang || \"zh-Hans\",\n configStr,\n alignedMemories.model,\n alignedMemories.lex,\n vocabList,\n alignedMemories.qualityModel || null\n );\n\n this.service = new this.bergamot.BlockingService({\n cacheSize: this.options.cacheSize || 0\n });\n\n this.isReady = true;\n }\n\n translate(text: string, options: TranslateOptions = {}): string {\n if (!this.isReady) throw new Error(\"Engine not initialized\");\n\n let processedText = text;\n if (options.html) {\n processedText = this._sanitizeHTML(text);\n }\n\n const { taggedText, replacements, forceHtml } = this._tagPlaceholders(processedText, options.html);\n const { cleanText, replacements: emojiReplacements } = this._hideEmojis(taggedText);\n const effectiveOptions: TranslateOptions = forceHtml ? { ...options, html: true } : options;\n\n let translation: string;\n try {\n if (cleanText.length > this.maxLengthBreak) {\n translation = this._translateLongText(cleanText, effectiveOptions);\n } else {\n translation = this._translateInternal(cleanText, effectiveOptions);\n }\n } catch (error: any) {\n if (this._isFatalWASMError(error)) {\n this.isReady = false;\n throw new Error(`Fatal WASM error: ${error.message}`);\n }\n throw error;\n }\n\n translation = this._restoreEmojis(translation, emojiReplacements);\n translation = this._restoreTaggedPlaceholders(translation, replacements);\n\n return translation;\n }\n\n private _sanitizeHTML(text: string): string {\n text = text.replace(/<(\\d+\\.\\d+)[^>]*>/g, '<$1>');\n text = text.replace(/<([^a-zA-Z/!?][^>]*)>/g, '<$1>');\n const unclosedTags = /<([a-zA-Z]+)(?:\\s[^>]*)?>(?![\\s\\S]*<\\/\\1>)/g;\n text = text.replace(unclosedTags, (match) => {\n if (match.endsWith('/>')) {\n return match;\n }\n return match.replace(/</g, '<').replace(/>/g, '>');\n });\n\n return text;\n }\n\n async translateAsync(text: string, options: TranslateOptions = {}): Promise<string> {\n return new Promise((resolve, reject) => {\n this.pendingQueue.push({ text, options, resolve, reject });\n this._processQueue();\n });\n }\n\n private _processQueue(): void {\n if (this.translating || this.pendingQueue.length === 0) return;\n\n this.translating = true;\n const task = this.pendingQueue.shift()!;\n\n try {\n const result = this.translate(task.text, task.options);\n task.resolve(result);\n } catch (error) {\n task.reject(error);\n } finally {\n this.translating = false;\n setImmediate(() => this._processQueue());\n }\n }\n\n private _translateInternal(text: string, options: TranslateOptions = {}): string {\n if (!this.bergamot) throw new Error(\"Bergamot module not initialized\");\n\n if (!text || text.trim().length === 0) {\n return text;\n }\n\n let cleanedText = text;\n if (!options.html) {\n cleanedText = cleanedText.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]/g, '');\n cleanedText = cleanedText.replace(/\\uFFFD/g, '');\n }\n\n const messages = new this.bergamot.VectorString();\n const responseOptions = new this.bergamot.VectorResponseOptions();\n\n try {\n messages.push_back(cleanedText);\n responseOptions.push_back({\n qualityScores: options.qualityScores || false,\n alignment: options.alignment !== undefined ? options.alignment : true,\n html: options.html || false\n });\n\n const responses = this.service.translate(this.model, messages, responseOptions);\n try {\n const result = responses.get(0);\n return result.getTranslatedText();\n } finally {\n responses.delete();\n }\n } catch (error: any) {\n console.error(`WASM Error Context: TextLength=${cleanedText.length}, Options=${JSON.stringify(options)}`);\n throw error;\n } finally {\n messages.delete();\n responseOptions.delete();\n }\n }\n\n private _isFatalWASMError(error: Error): boolean {\n const fatalPatterns = [\n 'Out of bounds memory access',\n 'Invalid memory access',\n 'Invalid table access',\n ];\n const errorMsg = error.message.toLowerCase();\n return fatalPatterns.some(pattern => errorMsg.includes(pattern));\n }\n\n private _translateLongText(text: string, options: TranslateOptions = {}): string {\n const separators = [\n \"\\n\", \" - \", \". \", \"。\", \"!\", \"!\", \"?\", \"?\",\n \"; \", \";\", \":\", \": \", \",\", \", \"\n ];\n\n let bestSep = \"\";\n let bestParts: string[] = [];\n let minMaxLen = text.length;\n\n for (const sep of separators) {\n const parts = text.split(sep);\n if (parts.length > 1) {\n let maxLen = 0;\n for (const p of parts) {\n if (p.length > maxLen) maxLen = p.length;\n }\n\n if (maxLen < minMaxLen) {\n minMaxLen = maxLen;\n bestSep = sep;\n bestParts = parts;\n }\n\n if (maxLen <= this.maxLengthBreak) {\n break;\n }\n }\n }\n\n if (bestParts.length <= 1) {\n bestParts = this._chunkByLength(text, this.maxLengthBreak);\n bestSep = \"\";\n }\n\n const results = bestParts.map(part => {\n if (!part.trim()) return part;\n if (part.length > this.maxLengthBreak) {\n return this._translateLongText(part, options);\n }\n return this._translateInternal(part, options);\n });\n\n return results.join(bestSep);\n }\n\n private _chunkByLength(text: string, chunkSize: number): string[] {\n if (chunkSize <= 0) return [text];\n const chunks: string[] = [];\n const codePoints = Array.from(text);\n for (let i = 0; i < codePoints.length; i += chunkSize) {\n chunks.push(codePoints.slice(i, i + chunkSize).join(''));\n }\n return chunks;\n }\n\n private _hideEmojis(text: string): { cleanText: string; replacements: Array<{ original: string; placeholder: string }> } {\n const emojiRegex = /(\\p{RI}\\p{RI}|\\p{Emoji_Presentation}|\\p{Extended_Pictographic})/gu;\n const replacements: Array<{ original: string; placeholder: string }> = [];\n const cleanText = text.replace(emojiRegex, (match) => {\n const placeholder = `[EE${replacements.length}]`;\n replacements.push({ original: match, placeholder });\n return placeholder;\n });\n return { cleanText, replacements };\n }\n\n private _restoreEmojis(text: string, replacements: Array<{ original: string; placeholder: string }>): string {\n let result = text;\n for (let i = 0; i < replacements.length; i++) {\n const { original } = replacements[i];\n const pattern = new RegExp(`\\\\[EE${i}\\\\]`, 'gi');\n result = result.replace(pattern, original);\n }\n return result;\n }\n\n private _tagPlaceholders(\n text: string,\n htmlEnabled: boolean = false\n ): { taggedText: string; replacements: string[]; forceHtml: boolean } {\n const placeholderRegex = /(\\{\\d+\\}|\\[\\d+\\])/g;\n if (!placeholderRegex.test(text)) {\n return { taggedText: text, replacements: [], forceHtml: false };\n }\n\n const replacements: string[] = [];\n const taggedText = text.replace(placeholderRegex, (match) => {\n const index = replacements.length;\n replacements.push(match);\n return `<mt${index} />`;\n });\n\n return { taggedText, replacements, forceHtml: !htmlEnabled };\n }\n\n private _restoreTaggedPlaceholders(text: string, replacements: string[]): string {\n if (replacements.length === 0) {\n return text;\n }\n\n let result = text;\n result = result.replace(/<\\/mt\\d+>/gi, '');\n result = result.replace(/<mt(\\d+)\\s*\\/?>/gi, (_, index) => {\n const idx = Number(index);\n return replacements[idx] ?? _;\n });\n\n return result;\n }\n\n destroy(): void {\n try {\n if (this.model) {\n this.model.delete();\n this.model = null;\n }\n if (this.service) {\n this.service.delete();\n this.service = null;\n }\n this.isReady = false;\n } catch (error) {\n console.error('Error during cleanup:', error);\n }\n }\n}\n",
|
|
13
|
-
"/* 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",
|
|
14
|
-
"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",
|
|
15
|
-
"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;\nconst SHORT_TEXT_CJK_THRESHOLD = 3;\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\nfunction detectShortCjkLanguage(text: string): string | null {\n if (text.length > SHORT_TEXT_CJK_THRESHOLD) {\n return null;\n }\n\n let hasHan = false;\n let hasKana = false;\n let hasHangul = false;\n\n for (const char of text) {\n const code = char.charCodeAt(0);\n\n if (code >= 0x3040 && code <= 0x30ff) {\n hasKana = true;\n continue;\n }\n\n if (code >= 0xac00 && code <= 0xd7af) {\n hasHangul = true;\n continue;\n }\n\n if (code >= 0x4e00 && code <= 0x9fff) {\n hasHan = true;\n continue;\n }\n\n if ((code >= 0x0041 && code <= 0x005a) || (code >= 0x0061 && code <= 0x007a)) {\n return null;\n }\n\n if ((code >= 0x0030 && code <= 0x0039) || code <= 0x007f) {\n continue;\n }\n\n if (code >= 0x3000 && code <= 0x303f) {\n continue;\n }\n\n return null;\n }\n\n if (hasKana) return 'ja';\n if (hasHangul) return 'ko';\n if (hasHan) return 'zh-Hans';\n return null;\n}\n\nexport async function detectLanguage(text: string, maxBytes: number = MAX_DETECTION_BYTES): Promise<string> {\n if (!text) {\n return '';\n }\n\n const shortCjk = detectShortCjkLanguage(text);\n if (shortCjk) {\n return shortCjk;\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}\n",
|
|
16
|
-
"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}",
|
|
17
|
-
"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",
|
|
18
|
-
"export * from './engine.js';\nexport * from './detector.js';\n",
|
|
19
|
-
"const languageAliases: Record<string, string> = {\n 'zh': 'zh-Hans',\n 'zh-cn': 'zh-Hans',\n 'zh-sg': 'zh-Hans',\n 'zh-hans': 'zh-Hans',\n 'cmn': 'zh-Hans',\n 'chinese': 'zh-Hans',\n 'zh-tw': 'zh-Hant',\n 'zh-hk': 'zh-Hant',\n 'zh-mo': 'zh-Hant',\n 'zh-hant': 'zh-Hant',\n 'cht': 'zh-Hant',\n 'en-us': 'en',\n 'en-gb': 'en',\n 'en-au': 'en',\n 'en-ca': 'en',\n 'en-nz': 'en',\n 'en-ie': 'en',\n 'en-za': 'en',\n 'en-jm': 'en',\n 'en-bz': 'en',\n 'en-tt': 'en',\n 'fr-fr': 'fr',\n 'fr-ca': 'fr',\n 'fr-be': 'fr',\n 'fr-ch': 'fr',\n 'es-es': 'es',\n 'es-mx': 'es',\n 'es-ar': 'es',\n 'es-co': 'es',\n 'es-cl': 'es',\n 'es-pe': 'es',\n 'es-ve': 'es',\n 'pt-pt': 'pt',\n 'pt-br': 'pt',\n 'de-de': 'de',\n 'de-at': 'de',\n 'de-ch': 'de',\n 'it-it': 'it',\n 'it-ch': 'it',\n 'ja-jp': 'ja',\n 'jp': 'ja',\n 'ko-kr': 'ko',\n 'kr': 'ko',\n 'ru-ru': 'ru',\n 'nb': 'no',\n};\n\nexport function NormalizeLanguageCode(code: string): string {\n if (!code) return '';\n\n const normalized = code.toLowerCase().replace(/_/g, '-');\n\n if (languageAliases[normalized]) {\n return languageAliases[normalized];\n }\n\n const mainCode = normalized.split('-')[0];\n if (languageAliases[mainCode]) {\n return languageAliases[mainCode];\n }\n\n return mainCode;\n}\n",
|
|
20
|
-
"import net from 'net';\n\nexport async function getFreePort(): Promise<number> {\n return new Promise((resolve, reject) => {\n const server = net.createServer();\n server.unref();\n server.on('error', reject);\n server.listen(0, () => {\n const address = server.address();\n if (address && typeof address !== 'string') {\n const port = address.port;\n server.close(() => resolve(port));\n } else {\n reject(new Error('Failed to get port'));\n }\n });\n });\n}\n",
|
|
21
|
-
"import os from 'os'\n\nexport function getAvailableMemoryMB(): number {\n try {\n const freeMemBytes = os.freemem()\n return Math.floor(freeMemBytes / 1024 / 1024)\n } catch (error) {\n return 0\n }\n}\n",
|
|
22
|
-
"export * from './lang-alias.js';\nexport * from './port.js';\nexport * from './version.js';\nexport * from './memory.js';\n",
|
|
23
|
-
"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",
|
|
24
|
-
"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"
|
|
25
|
-
],
|
|
26
|
-
"mappings": "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",
|
|
27
|
-
"debugId": "60A982E574DB9BFD64756E2164756E21",
|
|
28
|
-
"names": []
|
|
29
|
-
}
|