@libraz/libsonare 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../js/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/public_types.ts","../src/index.ts"],"sourcesContent":["/**\n * Pitch class enum (C=0, C#=1, ..., B=11)\n */\nexport const PitchClass = {\n C: 0,\n Cs: 1,\n D: 2,\n Ds: 3,\n E: 4,\n F: 5,\n Fs: 6,\n G: 7,\n Gs: 8,\n A: 9,\n As: 10,\n B: 11,\n} as const;\n\nexport type PitchClass = (typeof PitchClass)[keyof typeof PitchClass];\n\n/**\n * Musical mode\n */\nexport const Mode = {\n Major: 0,\n Minor: 1,\n} as const;\n\nexport type Mode = (typeof Mode)[keyof typeof Mode];\n\n/**\n * Chord quality\n */\nexport const ChordQuality = {\n Major: 0,\n Minor: 1,\n Diminished: 2,\n Augmented: 3,\n Dominant7: 4,\n Major7: 5,\n Minor7: 6,\n Sus2: 7,\n Sus4: 8,\n} as const;\n\nexport type ChordQuality = (typeof ChordQuality)[keyof typeof ChordQuality];\n\n/**\n * Section type\n */\nexport const SectionType = {\n Intro: 0,\n Verse: 1,\n PreChorus: 2,\n Chorus: 3,\n Bridge: 4,\n Instrumental: 5,\n Outro: 6,\n} as const;\n\nexport type SectionType = (typeof SectionType)[keyof typeof SectionType];\n\n/**\n * Detected musical key\n */\nexport interface Key {\n root: PitchClass;\n mode: Mode;\n confidence: number;\n name: string;\n shortName: string;\n}\n\n/**\n * Detected beat\n */\nexport interface Beat {\n time: number;\n strength: number;\n}\n\n/**\n * Detected chord\n */\nexport interface Chord {\n root: PitchClass;\n quality: ChordQuality;\n start: number;\n end: number;\n confidence: number;\n name: string;\n}\n\n/**\n * Detected section\n */\nexport interface Section {\n type: SectionType;\n start: number;\n end: number;\n energyLevel: number;\n confidence: number;\n name: string;\n}\n\n/**\n * Timbre characteristics\n */\nexport interface Timbre {\n brightness: number;\n warmth: number;\n density: number;\n roughness: number;\n complexity: number;\n}\n\n/**\n * Dynamics characteristics\n */\nexport interface Dynamics {\n dynamicRangeDb: number;\n loudnessRangeDb: number;\n crestFactor: number;\n isCompressed: boolean;\n}\n\n/**\n * Time signature\n */\nexport interface TimeSignature {\n numerator: number;\n denominator: number;\n confidence: number;\n}\n\n/**\n * Rhythm features\n */\nexport interface RhythmFeatures {\n syncopation: number;\n grooveType: string;\n patternRegularity: number;\n}\n\n/**\n * Complete analysis result\n */\nexport interface AnalysisResult {\n bpm: number;\n bpmConfidence: number;\n key: Key;\n timeSignature: TimeSignature;\n beatTimes: Float32Array;\n beats: Beat[];\n chords: Chord[];\n sections: Section[];\n timbre: Timbre;\n dynamics: Dynamics;\n rhythm: RhythmFeatures;\n form: string;\n}\n\n/**\n * HPSS (Harmonic-Percussive Source Separation) result\n */\nexport interface HpssResult {\n harmonic: Float32Array;\n percussive: Float32Array;\n sampleRate: number;\n}\n\n/**\n * Mastering loudness/true-peak processing result\n */\nexport interface MasteringResult {\n samples: Float32Array;\n sampleRate: number;\n inputLufs: number;\n outputLufs: number;\n appliedGainDb: number;\n latencySamples?: number;\n}\n\nexport type MasteringProcessorParams = Record<string, number | boolean>;\n\nexport interface MasteringChainConfig {\n repair?: {\n denoise?: boolean;\n nFft?: number;\n hopLength?: number;\n ddAlpha?: number;\n gainFloor?: number;\n declick?: {\n threshold?: number;\n neighborRatio?: number;\n maxClickSamples?: number;\n lpcOrder?: number;\n residualRatio?: number;\n };\n dereverb?: {\n threshold?: number;\n attenuation?: number;\n nFft?: number;\n hopLength?: number;\n t60Sec?: number;\n lateDelayMs?: number;\n overSubtraction?: number;\n spectralFloor?: number;\n wpeEnabled?: boolean;\n wpeIterations?: number;\n wpeTaps?: number;\n wpeStrength?: number;\n };\n };\n eq?: {\n tiltDb?: number;\n pivotHz?: number;\n };\n dynamics?: {\n compressor?: {\n thresholdDb?: number;\n ratio?: number;\n attackMs?: number;\n releaseMs?: number;\n kneeDb?: number;\n makeupGainDb?: number;\n autoMakeup?: boolean;\n };\n deesser?: {\n frequencyHz?: number;\n thresholdDb?: number;\n ratio?: number;\n attackMs?: number;\n releaseMs?: number;\n rangeDb?: number;\n };\n transientShaper?: {\n attackGainDb?: number;\n sustainGainDb?: number;\n fastAttackMs?: number;\n fastReleaseMs?: number;\n slowAttackMs?: number;\n slowReleaseMs?: number;\n sensitivity?: number;\n maxGainDb?: number;\n gainSmoothingMs?: number;\n lookaheadMs?: number;\n };\n multibandComp?: {\n lowCutoffHz?: number;\n highCutoffHz?: number;\n lowThresholdDb?: number;\n lowRatio?: number;\n lowAttackMs?: number;\n lowReleaseMs?: number;\n midThresholdDb?: number;\n midRatio?: number;\n midAttackMs?: number;\n midReleaseMs?: number;\n highThresholdDb?: number;\n highRatio?: number;\n highAttackMs?: number;\n highReleaseMs?: number;\n };\n };\n saturation?: {\n tape?: {\n driveDb?: number;\n saturation?: number;\n hysteresis?: number;\n outputGainDb?: number;\n speedIps?: number;\n headBumpDb?: number;\n bias?: number;\n gapLoss?: number;\n };\n exciter?: {\n frequencyHz?: number;\n driveDb?: number;\n amount?: number;\n q?: number;\n evenOddMix?: number;\n };\n };\n spectral?: {\n airBand?: {\n amount?: number;\n shelfFrequencyHz?: number;\n dynamicThresholdDb?: number;\n dynamicRangeDb?: number;\n };\n };\n stereo?: {\n imager?: {\n width?: number;\n outputGainDb?: number;\n decorrelationAmount?: number;\n preserveEnergy?: boolean;\n };\n monoMaker?: {\n amount?: number;\n };\n };\n maximizer?: {\n truePeakLimiter?: {\n ceilingDb?: number;\n lookaheadMs?: number;\n releaseMs?: number;\n oversampleFactor?: number;\n applyGainAtInputRate?: boolean;\n };\n };\n loudness?: {\n targetLufs?: number;\n ceilingDb?: number;\n truePeakOversample?: number;\n };\n}\n\nexport interface MasteringChainResult extends MasteringResult {\n stages: string[];\n}\n\nexport interface MasteringStereoChainResult {\n left: Float32Array;\n right: Float32Array;\n sampleRate: number;\n inputLufs: number;\n outputLufs: number;\n appliedGainDb: number;\n stages: string[];\n latencySamples?: number;\n}\n\nexport interface MasteringStereoResult {\n left: Float32Array;\n right: Float32Array;\n sampleRate: number;\n inputLufs: number;\n outputLufs: number;\n appliedGainDb: number;\n latencySamples: number;\n}\n\n/**\n * STFT (Short-Time Fourier Transform) result\n */\nexport interface StftResult {\n nBins: number;\n nFrames: number;\n nFft: number;\n hopLength: number;\n sampleRate: number;\n magnitude: Float32Array;\n power: Float32Array;\n}\n\n/**\n * Mel spectrogram result\n */\nexport interface MelSpectrogramResult {\n nMels: number;\n nFrames: number;\n sampleRate: number;\n hopLength: number;\n power: Float32Array;\n db: Float32Array;\n}\n\n/**\n * MFCC result\n */\nexport interface MfccResult {\n nMfcc: number;\n nFrames: number;\n coefficients: Float32Array;\n}\n\n/**\n * Chroma features result\n */\nexport interface ChromaResult {\n nChroma: number;\n nFrames: number;\n sampleRate: number;\n hopLength: number;\n features: Float32Array;\n meanEnergy: number[];\n}\n\n/**\n * Pitch detection result\n */\nexport interface PitchResult {\n f0: Float32Array;\n voicedProb: Float32Array;\n voicedFlag: boolean[];\n nFrames: number;\n medianF0: number;\n meanF0: number;\n}\n","/**\n * sonare - Audio Analysis Library\n *\n * @example\n * ```typescript\n * import { init, detectBpm, detectKey, analyze } from '@libraz/sonare';\n *\n * await init();\n *\n * // Detect BPM from audio samples\n * const bpm = detectBpm(samples, sampleRate);\n *\n * // Detect musical key\n * const key = detectKey(samples, sampleRate);\n *\n * // Full analysis\n * const result = analyze(samples, sampleRate);\n * ```\n */\n\nimport type {\n AnalysisResult,\n ChordQuality,\n ChromaResult,\n HpssResult,\n Key,\n MasteringChainConfig,\n MasteringChainResult,\n MasteringProcessorParams,\n MasteringResult,\n MasteringStereoChainResult,\n MasteringStereoResult,\n MelSpectrogramResult,\n MfccResult,\n Mode,\n PitchClass,\n PitchResult,\n SectionType,\n StftResult,\n} from './public_types';\nimport type { AnalyzerStats, FrameBuffer, StreamConfig } from './stream_types';\nimport type {\n ProgressCallback,\n SonareModule,\n WasmAnalysisResult,\n WasmFrameResult,\n WasmStreamAnalyzer,\n WasmTempogramResult,\n WasmTrimResult,\n} from './wasm_types';\n\nexport type {\n AnalysisResult,\n Beat,\n Chord,\n ChromaResult,\n Dynamics,\n HpssResult,\n Key,\n MasteringChainConfig,\n MasteringChainResult,\n MasteringProcessorParams,\n MasteringResult,\n MasteringStereoChainResult,\n MasteringStereoResult,\n MelSpectrogramResult,\n MfccResult,\n PitchResult,\n RhythmFeatures,\n Section,\n StftResult,\n Timbre,\n TimeSignature,\n} from './public_types';\nexport {\n ChordQuality,\n Mode,\n PitchClass,\n SectionType,\n} from './public_types';\nexport type {\n AnalyzerStats,\n BarChord,\n ChordChange,\n FrameBuffer,\n PatternScore,\n ProgressiveEstimate,\n StreamConfig,\n} from './stream_types';\nexport type { ProgressCallback } from './wasm_types';\n\n// ============================================================================\n// Module State\n// ============================================================================\n\nlet module: SonareModule | null = null;\nlet initPromise: Promise<void> | null = null;\n\n// ============================================================================\n// Initialization\n// ============================================================================\n\n/**\n * Initialize the WASM module.\n * Must be called before using any analysis functions.\n *\n * @param options - Optional module configuration\n * @returns Promise that resolves when initialization is complete\n */\nexport async function init(options?: {\n locateFile?: (path: string, prefix: string) => string;\n}): Promise<void> {\n if (module) {\n return;\n }\n\n if (initPromise) {\n return initPromise;\n }\n\n initPromise = (async () => {\n try {\n const createModule = (await import('./sonare.js')).default;\n module = await createModule(options);\n } catch (error) {\n initPromise = null;\n throw error;\n }\n })();\n\n return initPromise;\n}\n\n/**\n * Check if the module is initialized.\n */\nexport function isInitialized(): boolean {\n return module !== null;\n}\n\n/**\n * Get the library version.\n */\nexport function version(): string {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.version();\n}\n\n// ============================================================================\n// Quick API (High-level Analysis)\n// ============================================================================\n\n/**\n * Detect BPM from audio samples.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @returns Detected BPM\n */\nexport function detectBpm(samples: Float32Array, sampleRate: number): number {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.detectBpm(samples, sampleRate);\n}\n\n/**\n * Detect musical key from audio samples.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @returns Detected key\n */\nexport function detectKey(samples: Float32Array, sampleRate: number): Key {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n const result = module.detectKey(samples, sampleRate);\n return {\n root: result.root as PitchClass,\n mode: result.mode as Mode,\n confidence: result.confidence,\n name: result.name,\n shortName: result.shortName,\n };\n}\n\n/**\n * Detect onset times from audio samples.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @returns Array of onset times in seconds\n */\nexport function detectOnsets(samples: Float32Array, sampleRate: number): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.detectOnsets(samples, sampleRate);\n}\n\n/**\n * Detect beat times from audio samples.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @returns Array of beat times in seconds\n */\nexport function detectBeats(samples: Float32Array, sampleRate: number): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.detectBeats(samples, sampleRate);\n}\n\n// Helper to convert WASM result to typed result\nfunction convertAnalysisResult(wasm: WasmAnalysisResult): AnalysisResult {\n const beatTimes = new Float32Array(wasm.beats.length);\n for (let i = 0; i < wasm.beats.length; i++) {\n beatTimes[i] = wasm.beats[i].time;\n }\n return {\n bpm: wasm.bpm,\n bpmConfidence: wasm.bpmConfidence,\n key: {\n root: wasm.key.root as PitchClass,\n mode: wasm.key.mode as Mode,\n confidence: wasm.key.confidence,\n name: wasm.key.name,\n shortName: wasm.key.shortName,\n },\n timeSignature: wasm.timeSignature,\n beatTimes,\n beats: wasm.beats,\n chords: wasm.chords.map((c) => ({\n root: c.root as PitchClass,\n quality: c.quality as ChordQuality,\n start: c.start,\n end: c.end,\n confidence: c.confidence,\n name: c.name,\n })),\n sections: wasm.sections.map((s) => ({\n type: s.type as SectionType,\n start: s.start,\n end: s.end,\n energyLevel: s.energyLevel,\n confidence: s.confidence,\n name: s.name,\n })),\n timbre: wasm.timbre,\n dynamics: wasm.dynamics,\n rhythm: wasm.rhythm,\n form: wasm.form,\n };\n}\n\n/**\n * Perform complete music analysis.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @returns Complete analysis result\n */\nexport function analyze(samples: Float32Array, sampleRate: number): AnalysisResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n const result = module.analyze(samples, sampleRate);\n return convertAnalysisResult(result);\n}\n\n/**\n * Perform complete music analysis with progress reporting.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param onProgress - Progress callback (progress: 0-1, stage: string)\n * @returns Complete analysis result\n */\nexport function analyzeWithProgress(\n samples: Float32Array,\n sampleRate: number,\n onProgress: ProgressCallback,\n): AnalysisResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n const result = module.analyzeWithProgress(samples, sampleRate, onProgress);\n return convertAnalysisResult(result);\n}\n\n// ============================================================================\n// Effects\n// ============================================================================\n\n/**\n * Perform Harmonic-Percussive Source Separation (HPSS).\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param kernelHarmonic - Horizontal median filter size for harmonic (default: 31)\n * @param kernelPercussive - Vertical median filter size for percussive (default: 31)\n * @returns Separated harmonic and percussive components\n */\nexport function hpss(\n samples: Float32Array,\n sampleRate: number,\n kernelHarmonic = 31,\n kernelPercussive = 31,\n): HpssResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.hpss(samples, sampleRate, kernelHarmonic, kernelPercussive);\n}\n\n/**\n * Extract harmonic component from audio.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @returns Harmonic component\n */\nexport function harmonic(samples: Float32Array, sampleRate: number): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.harmonic(samples, sampleRate);\n}\n\n/**\n * Extract percussive component from audio.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @returns Percussive component\n */\nexport function percussive(samples: Float32Array, sampleRate: number): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.percussive(samples, sampleRate);\n}\n\n/**\n * Time-stretch audio without changing pitch.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param rate - Time stretch rate (0.5 = double duration, 2.0 = half duration)\n * @returns Time-stretched audio\n */\nexport function timeStretch(samples: Float32Array, sampleRate: number, rate: number): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.timeStretch(samples, sampleRate, rate);\n}\n\n/**\n * Pitch-shift audio without changing duration.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param semitones - Pitch shift in semitones (+12 = one octave up, -12 = one octave down)\n * @returns Pitch-shifted audio\n */\nexport function pitchShift(\n samples: Float32Array,\n sampleRate: number,\n semitones: number,\n): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.pitchShift(samples, sampleRate, semitones);\n}\n\n/**\n * Normalize audio to target peak level.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param targetDb - Target peak level in dB (default: 0 dB = full scale)\n * @returns Normalized audio\n */\nexport function normalize(samples: Float32Array, sampleRate: number, targetDb = 0.0): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.normalize(samples, sampleRate, targetDb);\n}\n\n/**\n * Apply mastering loudness normalization with a true-peak ceiling.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param targetLufs - Target integrated LUFS (default: -14)\n * @param ceilingDb - True/sample peak ceiling in dBFS (default: -1)\n * @param truePeakOversample - Oversampling factor used for peak estimation\n * @returns Processed audio and loudness metadata\n */\nexport function mastering(\n samples: Float32Array,\n sampleRate: number,\n targetLufs = -14.0,\n ceilingDb = -1.0,\n truePeakOversample = 4,\n): MasteringResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.mastering(samples, sampleRate, targetLufs, ceilingDb, truePeakOversample);\n}\n\nexport function masteringProcessorNames(): string[] {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.masteringProcessorNames();\n}\n\nexport function masteringPairProcessorNames(): string[] {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.masteringPairProcessorNames();\n}\n\nexport function masteringPairAnalysisNames(): string[] {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.masteringPairAnalysisNames();\n}\n\nexport function masteringStereoAnalysisNames(): string[] {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.masteringStereoAnalysisNames();\n}\n\nexport function masteringProcess(\n processorName: string,\n samples: Float32Array,\n sampleRate: number,\n params: MasteringProcessorParams = {},\n): MasteringResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.masteringProcess(processorName, samples, sampleRate, params);\n}\n\nexport function masteringProcessStereo(\n processorName: string,\n left: Float32Array,\n right: Float32Array,\n sampleRate: number,\n params: MasteringProcessorParams = {},\n): MasteringStereoResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n if (left.length !== right.length) {\n throw new Error('Stereo channel lengths must match.');\n }\n return module.masteringProcessStereo(processorName, left, right, sampleRate, params);\n}\n\nexport function masteringPairProcess(\n processorName: string,\n source: Float32Array,\n reference: Float32Array,\n sampleRate: number,\n params: MasteringProcessorParams = {},\n): MasteringResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.masteringPairProcess(processorName, source, reference, sampleRate, params);\n}\n\nexport function masteringPairAnalyze(\n analysisName: string,\n source: Float32Array,\n reference: Float32Array,\n sampleRate: number,\n params: MasteringProcessorParams = {},\n): string {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.masteringPairAnalyze(analysisName, source, reference, sampleRate, params);\n}\n\nexport function masteringStereoAnalyze(\n analysisName: string,\n left: Float32Array,\n right: Float32Array,\n sampleRate: number,\n params: MasteringProcessorParams = {},\n): string {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.masteringStereoAnalyze(analysisName, left, right, sampleRate, params);\n}\n\n/**\n * Apply a configurable mastering chain in WASM.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param config - Chain stage configuration\n * @returns Processed audio, loudness metadata, and applied stage names\n */\nexport function masteringChain(\n samples: Float32Array,\n sampleRate: number,\n config: MasteringChainConfig,\n): MasteringChainResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.masteringChain(samples, sampleRate, config as Record<string, unknown>);\n}\n\n/**\n * Apply a configurable stereo mastering chain in WASM.\n *\n * @param left - Left channel samples\n * @param right - Right channel samples\n * @param sampleRate - Sample rate in Hz\n * @param config - Chain stage configuration\n * @returns Processed stereo audio, loudness metadata, and applied stage names\n */\nexport function masteringChainStereo(\n left: Float32Array,\n right: Float32Array,\n sampleRate: number,\n config: MasteringChainConfig,\n): MasteringStereoChainResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n if (left.length !== right.length) {\n throw new Error('Stereo channel lengths must match.');\n }\n return module.masteringChainStereo(left, right, sampleRate, config as Record<string, unknown>);\n}\n\n/**\n * Apply a configurable mastering chain in WASM with progress reporting.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param config - Chain stage configuration\n * @param onProgress - Progress callback (progress: 0-1, stage: string)\n * @returns Processed audio, loudness metadata, and applied stage names\n */\nexport function masteringChainWithProgress(\n samples: Float32Array,\n sampleRate: number,\n config: MasteringChainConfig,\n onProgress: ProgressCallback,\n): MasteringChainResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.masteringChainWithProgress(\n samples,\n sampleRate,\n config as Record<string, unknown>,\n onProgress,\n );\n}\n\n/**\n * Apply a configurable stereo mastering chain in WASM with progress reporting.\n *\n * @param left - Left channel samples\n * @param right - Right channel samples\n * @param sampleRate - Sample rate in Hz\n * @param config - Chain stage configuration\n * @param onProgress - Progress callback (progress: 0-1, stage: string)\n * @returns Processed stereo audio, loudness metadata, and applied stage names\n */\nexport function masteringChainStereoWithProgress(\n left: Float32Array,\n right: Float32Array,\n sampleRate: number,\n config: MasteringChainConfig,\n onProgress: ProgressCallback,\n): MasteringStereoChainResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n if (left.length !== right.length) {\n throw new Error('Stereo channel lengths must match.');\n }\n return module.masteringChainStereoWithProgress(\n left,\n right,\n sampleRate,\n config as Record<string, unknown>,\n onProgress,\n );\n}\n\n/**\n * List built-in mastering preset identifiers.\n *\n * @returns Preset names in display order (e.g. \"pop\", \"edm\", \"aiMusic\")\n */\nexport function masteringPresetNames(): string[] {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.masteringPresetNames();\n}\n\n/**\n * Apply a named mastering preset chain to mono audio.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param presetName - Preset identifier from {@link masteringPresetNames}\n * @param overrides - Optional flat overrides (dot-notation, e.g. `'loudness.targetLufs'`) applied on top of the preset. Pass `null` for preset defaults.\n * @returns Processed audio, loudness metadata, and applied stage names\n */\nexport function masterAudio(\n samples: Float32Array,\n sampleRate: number,\n presetName: string,\n overrides: Record<string, number | boolean> | null = null,\n): MasteringChainResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.masterAudio(presetName, samples, sampleRate, overrides);\n}\n\n/**\n * Apply a named mastering preset chain to stereo audio.\n *\n * @param left - Left channel samples\n * @param right - Right channel samples\n * @param sampleRate - Sample rate in Hz\n * @param presetName - Preset identifier from {@link masteringPresetNames}\n * @param overrides - Optional flat overrides (dot-notation, e.g. `'loudness.targetLufs'`) applied on top of the preset. Pass `null` for preset defaults.\n * @returns Processed stereo audio, loudness metadata, and applied stage names\n */\nexport function masterAudioStereo(\n left: Float32Array,\n right: Float32Array,\n sampleRate: number,\n presetName: string,\n overrides: Record<string, number | boolean> | null = null,\n): MasteringStereoChainResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n if (left.length !== right.length) {\n throw new Error('Stereo channel lengths must match.');\n }\n return module.masterAudioStereo(presetName, left, right, sampleRate, overrides);\n}\n\n// ============================================================================\n// StreamingMasteringChain Class\n// ============================================================================\n\n/**\n * Block-by-block streaming variant of {@link masteringChain}.\n *\n * Maintains processor state across {@link processMono}/{@link processStereo}\n * calls. Only ProcessorBase-backed stages are supported. Configurations that\n * enable `repair.denoise` or `loudness` throw at construction.\n *\n * Call {@link delete} (or use a `try/finally`) to release the underlying WASM\n * object — the embind handle is not garbage-collected automatically.\n *\n * @example\n * ```typescript\n * const chain = new StreamingMasteringChain({ eq: { tiltDb: 1.0 } });\n * try {\n * chain.prepare(44100, 512, 1);\n * const out = chain.processMono(blockSamples);\n * } finally {\n * chain.delete();\n * }\n * ```\n */\nexport class StreamingMasteringChain {\n private chain: import('./wasm_types').WasmStreamingMasteringChain;\n\n constructor(config: MasteringChainConfig) {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n this.chain = module.createStreamingMasteringChain(config as Record<string, unknown>);\n }\n\n /**\n * Initialize processors for the given sample rate and block layout.\n *\n * @param sampleRate - Sample rate in Hz\n * @param maxBlockSize - Maximum block size per process call\n * @param numChannels - 1 (mono) or 2 (stereo)\n */\n prepare(sampleRate: number, maxBlockSize: number, numChannels: number): void {\n this.chain.prepare(sampleRate, maxBlockSize, numChannels);\n }\n\n /**\n * Process one mono block, returning the processed samples (same length).\n */\n processMono(samples: Float32Array): Float32Array {\n return this.chain.processMono(samples);\n }\n\n /**\n * Process one stereo block, returning the processed channels.\n */\n processStereo(\n left: Float32Array,\n right: Float32Array,\n ): { left: Float32Array; right: Float32Array } {\n if (left.length !== right.length) {\n throw new Error('Stereo channel lengths must match.');\n }\n return this.chain.processStereo(left, right);\n }\n\n /** Reset all processor state without rebuilding. */\n reset(): void {\n this.chain.reset();\n }\n\n /** Total reported latency in samples across all active processors. */\n latencySamples(): number {\n return this.chain.latencySamples();\n }\n\n /** Ordered stage names that will run (e.g. `\"eq.tilt\"`). */\n stageNames(): string[] {\n return this.chain.stageNames();\n }\n\n /** Release the underlying WASM object. Safe to call only once. */\n delete(): void {\n this.chain.delete();\n }\n}\n\n/**\n * Trim silence from beginning and end of audio.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param thresholdDb - Silence threshold in dB (default: -60 dB)\n * @returns Trimmed audio\n */\nexport function trim(samples: Float32Array, sampleRate: number, thresholdDb = -60.0): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.trim(samples, sampleRate, thresholdDb);\n}\n\n// ============================================================================\n// Features - Spectrogram\n// ============================================================================\n\n/**\n * Compute Short-Time Fourier Transform (STFT).\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param nFft - FFT size (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @returns STFT result with magnitude and power spectrograms\n */\nexport function stft(\n samples: Float32Array,\n sampleRate: number,\n nFft = 2048,\n hopLength = 512,\n): StftResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.stft(samples, sampleRate, nFft, hopLength);\n}\n\n/**\n * Compute STFT and return magnitude in decibels.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param nFft - FFT size (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @returns STFT result with dB values\n */\nexport function stftDb(\n samples: Float32Array,\n sampleRate: number,\n nFft = 2048,\n hopLength = 512,\n): { nBins: number; nFrames: number; db: Float32Array } {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.stftDb(samples, sampleRate, nFft, hopLength);\n}\n\n// ============================================================================\n// Features - Mel Spectrogram\n// ============================================================================\n\n/**\n * Compute Mel spectrogram.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param nFft - FFT size (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @param nMels - Number of Mel bands (default: 128)\n * @returns Mel spectrogram result\n */\nexport function melSpectrogram(\n samples: Float32Array,\n sampleRate: number,\n nFft = 2048,\n hopLength = 512,\n nMels = 128,\n): MelSpectrogramResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.melSpectrogram(samples, sampleRate, nFft, hopLength, nMels);\n}\n\n/**\n * Compute MFCC (Mel-Frequency Cepstral Coefficients).\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param nFft - FFT size (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @param nMels - Number of Mel bands (default: 128)\n * @param nMfcc - Number of MFCC coefficients (default: 13)\n * @returns MFCC result\n */\nexport function mfcc(\n samples: Float32Array,\n sampleRate: number,\n nFft = 2048,\n hopLength = 512,\n nMels = 128,\n nMfcc = 13,\n): MfccResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.mfcc(samples, sampleRate, nFft, hopLength, nMels, nMfcc);\n}\n\n// ============================================================================\n// Features - Chroma\n// ============================================================================\n\n/**\n * Compute chromagram (pitch class distribution).\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param nFft - FFT size (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @returns Chroma features result\n */\nexport function chroma(\n samples: Float32Array,\n sampleRate: number,\n nFft = 2048,\n hopLength = 512,\n): ChromaResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.chroma(samples, sampleRate, nFft, hopLength);\n}\n\n// ============================================================================\n// Features - Spectral\n// ============================================================================\n\n/**\n * Compute spectral centroid (center of mass of spectrum).\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param nFft - FFT size (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @returns Spectral centroid in Hz for each frame\n */\nexport function spectralCentroid(\n samples: Float32Array,\n sampleRate: number,\n nFft = 2048,\n hopLength = 512,\n): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.spectralCentroid(samples, sampleRate, nFft, hopLength);\n}\n\n/**\n * Compute spectral bandwidth.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param nFft - FFT size (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @returns Spectral bandwidth in Hz for each frame\n */\nexport function spectralBandwidth(\n samples: Float32Array,\n sampleRate: number,\n nFft = 2048,\n hopLength = 512,\n): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.spectralBandwidth(samples, sampleRate, nFft, hopLength);\n}\n\n/**\n * Compute spectral rolloff frequency.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param nFft - FFT size (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @param rollPercent - Percentage threshold (default: 0.85)\n * @returns Rolloff frequency in Hz for each frame\n */\nexport function spectralRolloff(\n samples: Float32Array,\n sampleRate: number,\n nFft = 2048,\n hopLength = 512,\n rollPercent = 0.85,\n): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.spectralRolloff(samples, sampleRate, nFft, hopLength, rollPercent);\n}\n\n/**\n * Compute spectral flatness.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param nFft - FFT size (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @returns Spectral flatness for each frame (0 = tonal, 1 = noise-like)\n */\nexport function spectralFlatness(\n samples: Float32Array,\n sampleRate: number,\n nFft = 2048,\n hopLength = 512,\n): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.spectralFlatness(samples, sampleRate, nFft, hopLength);\n}\n\n/**\n * Compute zero crossing rate.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param frameLength - Frame length (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @returns Zero crossing rate for each frame\n */\nexport function zeroCrossingRate(\n samples: Float32Array,\n sampleRate: number,\n frameLength = 2048,\n hopLength = 512,\n): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.zeroCrossingRate(samples, sampleRate, frameLength, hopLength);\n}\n\n/**\n * Compute RMS energy.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param frameLength - Frame length (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @returns RMS energy for each frame\n */\nexport function rmsEnergy(\n samples: Float32Array,\n sampleRate: number,\n frameLength = 2048,\n hopLength = 512,\n): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.rmsEnergy(samples, sampleRate, frameLength, hopLength);\n}\n\n// ============================================================================\n// Features - Pitch\n// ============================================================================\n\n/**\n * Detect pitch using YIN algorithm.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param frameLength - Frame length (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @param fmin - Minimum frequency in Hz (default: 65)\n * @param fmax - Maximum frequency in Hz (default: 2093)\n * @param threshold - YIN threshold (default: 0.3)\n * @returns Pitch detection result\n */\nexport function pitchYin(\n samples: Float32Array,\n sampleRate: number,\n frameLength = 2048,\n hopLength = 512,\n fmin = 65.0,\n fmax = 2093.0,\n threshold = 0.3,\n): PitchResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.pitchYin(samples, sampleRate, frameLength, hopLength, fmin, fmax, threshold);\n}\n\n/**\n * Detect pitch using pYIN algorithm (probabilistic YIN with HMM smoothing).\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleRate - Sample rate in Hz\n * @param frameLength - Frame length (default: 2048)\n * @param hopLength - Hop length (default: 512)\n * @param fmin - Minimum frequency in Hz (default: 65)\n * @param fmax - Maximum frequency in Hz (default: 2093)\n * @param threshold - YIN threshold (default: 0.3)\n * @returns Pitch detection result\n */\nexport function pitchPyin(\n samples: Float32Array,\n sampleRate: number,\n frameLength = 2048,\n hopLength = 512,\n fmin = 65.0,\n fmax = 2093.0,\n threshold = 0.3,\n): PitchResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.pitchPyin(samples, sampleRate, frameLength, hopLength, fmin, fmax, threshold);\n}\n\n// ============================================================================\n// Core - Unit Conversion\n// ============================================================================\n\n/**\n * Convert frequency in Hz to Mel scale.\n *\n * @param hz - Frequency in Hz\n * @returns Mel frequency\n */\nexport function hzToMel(hz: number): number {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.hzToMel(hz);\n}\n\n/**\n * Convert Mel scale to frequency in Hz.\n *\n * @param mel - Mel frequency\n * @returns Frequency in Hz\n */\nexport function melToHz(mel: number): number {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.melToHz(mel);\n}\n\n/**\n * Convert frequency in Hz to MIDI note number.\n *\n * @param hz - Frequency in Hz\n * @returns MIDI note number (A4 = 440 Hz = 69)\n */\nexport function hzToMidi(hz: number): number {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.hzToMidi(hz);\n}\n\n/**\n * Convert MIDI note number to frequency in Hz.\n *\n * @param midi - MIDI note number\n * @returns Frequency in Hz\n */\nexport function midiToHz(midi: number): number {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.midiToHz(midi);\n}\n\n/**\n * Convert frequency in Hz to note name.\n *\n * @param hz - Frequency in Hz\n * @returns Note name (e.g., \"A4\", \"C#5\")\n */\nexport function hzToNote(hz: number): string {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.hzToNote(hz);\n}\n\n/**\n * Convert note name to frequency in Hz.\n *\n * @param note - Note name (e.g., \"A4\", \"C#5\")\n * @returns Frequency in Hz\n */\nexport function noteToHz(note: string): number {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.noteToHz(note);\n}\n\n/**\n * Convert frame index to time in seconds.\n *\n * @param frames - Frame index\n * @param sr - Sample rate in Hz\n * @param hopLength - Hop length in samples\n * @returns Time in seconds\n */\nexport function framesToTime(frames: number, sr: number, hopLength: number): number {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.framesToTime(frames, sr, hopLength);\n}\n\n/**\n * Convert time in seconds to frame index.\n *\n * @param time - Time in seconds\n * @param sr - Sample rate in Hz\n * @param hopLength - Hop length in samples\n * @returns Frame index\n */\nexport function timeToFrames(time: number, sr: number, hopLength: number): number {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.timeToFrames(time, sr, hopLength);\n}\n\nexport function framesToSamples(frames: number, hopLength = 512, nFft = 0): number {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.framesToSamples(frames, hopLength, nFft);\n}\n\nexport function samplesToFrames(samples: number, hopLength = 512, nFft = 0): number {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.samplesToFrames(samples, hopLength, nFft);\n}\n\nexport function powerToDb(\n values: Float32Array,\n ref = 1.0,\n amin = 1e-10,\n topDb = 80.0,\n): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.powerToDb(values, ref, amin, topDb);\n}\n\nexport function amplitudeToDb(\n values: Float32Array,\n ref = 1.0,\n amin = 1e-5,\n topDb = 80.0,\n): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.amplitudeToDb(values, ref, amin, topDb);\n}\n\nexport function dbToPower(values: Float32Array, ref = 1.0): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.dbToPower(values, ref);\n}\n\nexport function dbToAmplitude(values: Float32Array, ref = 1.0): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.dbToAmplitude(values, ref);\n}\n\nexport function preemphasis(samples: Float32Array, coef = 0.97, zi?: number): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.preemphasis(samples, coef, zi ?? null);\n}\n\nexport function deemphasis(samples: Float32Array, coef = 0.97, zi?: number): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.deemphasis(samples, coef, zi ?? null);\n}\n\nexport function trimSilence(\n samples: Float32Array,\n topDb = 60.0,\n frameLength = 2048,\n hopLength = 512,\n): WasmTrimResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.trimSilence(samples, topDb, frameLength, hopLength);\n}\n\nexport function splitSilence(\n samples: Float32Array,\n topDb = 60.0,\n frameLength = 2048,\n hopLength = 512,\n): Int32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.splitSilence(samples, topDb, frameLength, hopLength);\n}\n\nexport function frameSignal(\n samples: Float32Array,\n frameLength: number,\n hopLength: number,\n): WasmFrameResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.frameSignal(samples, frameLength, hopLength);\n}\n\nexport function padCenter(values: Float32Array, size: number, padValue = 0.0): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.padCenter(values, size, padValue);\n}\n\nexport function fixLength(values: Float32Array, size: number, padValue = 0.0): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.fixLength(values, size, padValue);\n}\n\nexport function fixFrames(frames: Int32Array, xMin = 0, xMax = -1, pad = true): Int32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.fixFrames(frames, xMin, xMax, pad);\n}\n\nexport function peakPick(\n values: Float32Array,\n preMax: number,\n postMax: number,\n preAvg: number,\n postAvg: number,\n delta: number,\n wait: number,\n): Int32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.peakPick(values, preMax, postMax, preAvg, postAvg, delta, wait);\n}\n\nexport function vectorNormalize(\n values: Float32Array,\n normType = 0,\n threshold = 1e-12,\n): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.vectorNormalize(values, normType, threshold);\n}\n\nexport function pcen(\n values: Float32Array,\n nBins: number,\n nFrames: number,\n options: Record<string, number> = {},\n): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.pcen(values, nBins, nFrames, options);\n}\n\nexport function tonnetz(chromagram: Float32Array, nChroma: number, nFrames: number): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.tonnetz(chromagram, nChroma, nFrames);\n}\n\nexport function tempogram(\n onsetEnvelope: Float32Array,\n sampleRate: number,\n hopLength = 512,\n winLength = 384,\n): WasmTempogramResult {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.tempogram(onsetEnvelope, sampleRate, hopLength, winLength);\n}\n\nexport function plp(\n onsetEnvelope: Float32Array,\n sampleRate: number,\n hopLength = 512,\n tempoMin = 30.0,\n tempoMax = 300.0,\n winLength = 384,\n): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.plp(onsetEnvelope, sampleRate, hopLength, tempoMin, tempoMax, winLength);\n}\n\n// ============================================================================\n// Core - Resample\n// ============================================================================\n\n/**\n * Resample audio to a different sample rate.\n *\n * @param samples - Audio samples (mono, float32)\n * @param srcSr - Source sample rate in Hz\n * @param targetSr - Target sample rate in Hz\n * @returns Resampled audio\n */\nexport function resample(samples: Float32Array, srcSr: number, targetSr: number): Float32Array {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n return module.resample(samples, srcSr, targetSr);\n}\n\n// ============================================================================\n// Audio Class\n// ============================================================================\n\n/**\n * Wrapper around audio data that exposes all analysis and feature functions as instance methods.\n *\n * @example\n * ```typescript\n * import { init, Audio } from '@libraz/sonare';\n *\n * await init();\n *\n * const audio = Audio.fromBuffer(samples, 44100);\n * console.log('BPM:', audio.detectBpm());\n * console.log('Key:', audio.detectKey().name);\n *\n * const mel = audio.melSpectrogram();\n * ```\n */\nexport class Audio {\n private _samples: Float32Array;\n private _sampleRate: number;\n\n private constructor(samples: Float32Array, sampleRate: number) {\n this._samples = samples;\n this._sampleRate = sampleRate;\n }\n\n /** Create an Audio instance from raw sample data. */\n static fromBuffer(samples: Float32Array, sampleRate: number): Audio {\n return new Audio(samples, sampleRate);\n }\n\n /** The raw audio samples. */\n get data(): Float32Array {\n return this._samples;\n }\n\n /** Number of samples. */\n get length(): number {\n return this._samples.length;\n }\n\n /** Sample rate in Hz. */\n get sampleRate(): number {\n return this._sampleRate;\n }\n\n /** Duration in seconds. */\n get duration(): number {\n return this._samples.length / this._sampleRate;\n }\n\n // -- Analysis --\n\n detectBpm(): number {\n return detectBpm(this._samples, this._sampleRate);\n }\n\n detectKey(): Key {\n return detectKey(this._samples, this._sampleRate);\n }\n\n detectOnsets(): Float32Array {\n return detectOnsets(this._samples, this._sampleRate);\n }\n\n detectBeats(): Float32Array {\n return detectBeats(this._samples, this._sampleRate);\n }\n\n analyze(): AnalysisResult {\n return analyze(this._samples, this._sampleRate);\n }\n\n analyzeWithProgress(onProgress: ProgressCallback): AnalysisResult {\n return analyzeWithProgress(this._samples, this._sampleRate, onProgress);\n }\n\n // -- Effects --\n\n hpss(kernelHarmonic = 31, kernelPercussive = 31): HpssResult {\n return hpss(this._samples, this._sampleRate, kernelHarmonic, kernelPercussive);\n }\n\n harmonic(): Float32Array {\n return harmonic(this._samples, this._sampleRate);\n }\n\n percussive(): Float32Array {\n return percussive(this._samples, this._sampleRate);\n }\n\n timeStretch(rate: number): Float32Array {\n return timeStretch(this._samples, this._sampleRate, rate);\n }\n\n pitchShift(semitones: number): Float32Array {\n return pitchShift(this._samples, this._sampleRate, semitones);\n }\n\n normalize(targetDb = 0.0): Float32Array {\n return normalize(this._samples, this._sampleRate, targetDb);\n }\n\n mastering(targetLufs = -14.0, ceilingDb = -1.0, truePeakOversample = 4): MasteringResult {\n return mastering(this._samples, this._sampleRate, targetLufs, ceilingDb, truePeakOversample);\n }\n\n masteringChain(config: MasteringChainConfig): MasteringChainResult {\n return masteringChain(this._samples, this._sampleRate, config);\n }\n\n masterAudio(\n presetName: string,\n overrides: Record<string, number | boolean> | null = null,\n ): MasteringChainResult {\n return masterAudio(this._samples, this._sampleRate, presetName, overrides);\n }\n\n masteringProcess(processorName: string, params: MasteringProcessorParams = {}): MasteringResult {\n return masteringProcess(processorName, this._samples, this._sampleRate, params);\n }\n\n trim(thresholdDb = -60.0): Float32Array {\n return trim(this._samples, this._sampleRate, thresholdDb);\n }\n\n // -- Features --\n\n stft(nFft = 2048, hopLength = 512): StftResult {\n return stft(this._samples, this._sampleRate, nFft, hopLength);\n }\n\n stftDb(nFft = 2048, hopLength = 512): { nBins: number; nFrames: number; db: Float32Array } {\n return stftDb(this._samples, this._sampleRate, nFft, hopLength);\n }\n\n melSpectrogram(nFft = 2048, hopLength = 512, nMels = 128): MelSpectrogramResult {\n return melSpectrogram(this._samples, this._sampleRate, nFft, hopLength, nMels);\n }\n\n mfcc(nFft = 2048, hopLength = 512, nMels = 128, nMfcc = 13): MfccResult {\n return mfcc(this._samples, this._sampleRate, nFft, hopLength, nMels, nMfcc);\n }\n\n chroma(nFft = 2048, hopLength = 512): ChromaResult {\n return chroma(this._samples, this._sampleRate, nFft, hopLength);\n }\n\n spectralCentroid(nFft = 2048, hopLength = 512): Float32Array {\n return spectralCentroid(this._samples, this._sampleRate, nFft, hopLength);\n }\n\n spectralBandwidth(nFft = 2048, hopLength = 512): Float32Array {\n return spectralBandwidth(this._samples, this._sampleRate, nFft, hopLength);\n }\n\n spectralRolloff(nFft = 2048, hopLength = 512, rollPercent = 0.85): Float32Array {\n return spectralRolloff(this._samples, this._sampleRate, nFft, hopLength, rollPercent);\n }\n\n spectralFlatness(nFft = 2048, hopLength = 512): Float32Array {\n return spectralFlatness(this._samples, this._sampleRate, nFft, hopLength);\n }\n\n zeroCrossingRate(frameLength = 2048, hopLength = 512): Float32Array {\n return zeroCrossingRate(this._samples, this._sampleRate, frameLength, hopLength);\n }\n\n rmsEnergy(frameLength = 2048, hopLength = 512): Float32Array {\n return rmsEnergy(this._samples, this._sampleRate, frameLength, hopLength);\n }\n\n pitchYin(\n frameLength = 2048,\n hopLength = 512,\n fmin = 65.0,\n fmax = 2093.0,\n threshold = 0.3,\n ): PitchResult {\n return pitchYin(this._samples, this._sampleRate, frameLength, hopLength, fmin, fmax, threshold);\n }\n\n pitchPyin(\n frameLength = 2048,\n hopLength = 512,\n fmin = 65.0,\n fmax = 2093.0,\n threshold = 0.3,\n ): PitchResult {\n return pitchPyin(\n this._samples,\n this._sampleRate,\n frameLength,\n hopLength,\n fmin,\n fmax,\n threshold,\n );\n }\n\n resample(targetSr: number): Float32Array {\n return resample(this._samples, this._sampleRate, targetSr);\n }\n}\n\n// ============================================================================\n// StreamAnalyzer Class\n// ============================================================================\n\n/**\n * Real-time streaming audio analyzer.\n *\n * @example\n * ```typescript\n * import { init, StreamAnalyzer } from '@libraz/sonare';\n *\n * await init();\n *\n * const analyzer = new StreamAnalyzer({ sampleRate: 44100 });\n *\n * // In audio processing callback\n * analyzer.process(samples);\n *\n * // Get current analysis state\n * const stats = analyzer.stats();\n * console.log('BPM:', stats.estimate.bpm);\n * console.log('Key:', stats.estimate.key);\n * console.log('Chord progression:', stats.estimate.chordProgression);\n * ```\n */\nexport class StreamAnalyzer {\n private analyzer: WasmStreamAnalyzer;\n\n /**\n * Create a new StreamAnalyzer.\n *\n * @param config - Configuration options\n */\n constructor(config: StreamConfig) {\n if (!module) {\n throw new Error('Module not initialized. Call init() first.');\n }\n this.analyzer = new module.StreamAnalyzer(\n config.sampleRate,\n config.nFft ?? 2048,\n config.hopLength ?? 512,\n config.nMels ?? 128,\n config.computeMel ?? true,\n config.computeChroma ?? true,\n config.computeOnset ?? true,\n config.emitEveryNFrames ?? 1,\n );\n }\n\n /**\n * Process audio samples.\n *\n * @param samples - Audio samples (mono, float32)\n */\n process(samples: Float32Array): void {\n this.analyzer.process(samples);\n }\n\n /**\n * Process audio samples with explicit sample offset.\n *\n * @param samples - Audio samples (mono, float32)\n * @param sampleOffset - Cumulative sample count at start of this chunk\n */\n processWithOffset(samples: Float32Array, sampleOffset: number): void {\n this.analyzer.processWithOffset(samples, sampleOffset);\n }\n\n /**\n * Get the number of frames available to read.\n */\n availableFrames(): number {\n return this.analyzer.availableFrames();\n }\n\n /**\n * Read processed frames as Structure of Arrays.\n *\n * @param maxFrames - Maximum number of frames to read\n * @returns Frame buffer with analysis results\n */\n readFrames(maxFrames: number): FrameBuffer {\n return this.analyzer.readFramesSoa(maxFrames);\n }\n\n /**\n * Reset the analyzer state.\n *\n * @param baseSampleOffset - Starting sample offset (default 0)\n */\n reset(baseSampleOffset = 0): void {\n this.analyzer.reset(baseSampleOffset);\n }\n\n /**\n * Get current statistics and progressive estimates.\n *\n * @returns Analyzer statistics including BPM, key, and chord progression\n */\n stats(): AnalyzerStats {\n const s = this.analyzer.stats();\n return {\n totalFrames: s.totalFrames,\n totalSamples: s.totalSamples,\n durationSeconds: s.durationSeconds,\n estimate: {\n bpm: s.estimate.bpm,\n bpmConfidence: s.estimate.bpmConfidence,\n bpmCandidateCount: s.estimate.bpmCandidateCount,\n key: s.estimate.key as PitchClass,\n keyMinor: s.estimate.keyMinor,\n keyConfidence: s.estimate.keyConfidence,\n chordRoot: s.estimate.chordRoot as PitchClass,\n chordQuality: s.estimate.chordQuality as ChordQuality,\n chordConfidence: s.estimate.chordConfidence,\n chordProgression: s.estimate.chordProgression.map((c) => ({\n root: c.root as PitchClass,\n quality: c.quality as ChordQuality,\n startTime: c.startTime,\n confidence: c.confidence,\n })),\n barChordProgression: s.estimate.barChordProgression.map((c) => ({\n barIndex: c.barIndex,\n root: c.root as PitchClass,\n quality: c.quality as ChordQuality,\n startTime: c.startTime,\n confidence: c.confidence,\n })),\n currentBar: s.estimate.currentBar,\n barDuration: s.estimate.barDuration,\n votedPattern: (s.estimate.votedPattern || []).map((c) => ({\n barIndex: c.barIndex,\n root: c.root as PitchClass,\n quality: c.quality as ChordQuality,\n startTime: c.startTime,\n confidence: c.confidence,\n })),\n patternLength: s.estimate.patternLength,\n detectedPatternName: s.estimate.detectedPatternName || '',\n detectedPatternScore: s.estimate.detectedPatternScore || 0,\n allPatternScores: (s.estimate.allPatternScores || []).map((p) => ({\n name: p.name,\n score: p.score,\n })),\n accumulatedSeconds: s.estimate.accumulatedSeconds,\n usedFrames: s.estimate.usedFrames,\n updated: s.estimate.updated,\n },\n };\n }\n\n /**\n * Get total frames processed.\n */\n frameCount(): number {\n return this.analyzer.frameCount();\n }\n\n /**\n * Get current time position in seconds.\n */\n currentTime(): number {\n return this.analyzer.currentTime();\n }\n\n /**\n * Get the sample rate.\n */\n sampleRate(): number {\n return this.analyzer.sampleRate();\n }\n\n /**\n * Set the expected total duration for pattern lock timing.\n *\n * @param durationSeconds - Total duration in seconds\n */\n setExpectedDuration(durationSeconds: number): void {\n this.analyzer.setExpectedDuration(durationSeconds);\n }\n\n /**\n * Set normalization gain for loud/compressed audio.\n *\n * @param gain - Gain factor to apply (e.g., 0.5 for -6dB reduction)\n */\n setNormalizationGain(gain: number): void {\n this.analyzer.setNormalizationGain(gain);\n }\n\n /**\n * Set tuning reference frequency for non-standard tuning.\n *\n * @param refHz - Reference frequency for A4 (default 440 Hz)\n * @example\n * // If audio is 1 semitone sharp (A4 = 466.16 Hz)\n * analyzer.setTuningRefHz(466.16);\n * // If audio is 1 semitone flat (A4 = 415.30 Hz)\n * analyzer.setTuningRefHz(415.30);\n */\n setTuningRefHz(refHz: number): void {\n this.analyzer.setTuningRefHz(refHz);\n }\n\n /**\n * Release resources. Call when done using the analyzer.\n */\n dispose(): void {\n this.analyzer.delete();\n }\n}\n\n// ============================================================================\n// Re-exports\n// ============================================================================\n\nexport { PitchClass as Pitch } from './public_types';\n"],"mappings":"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","names":[]}
package/dist/sonare.js CHANGED
@@ -1,2 +1,2 @@
1
- async function Sonare(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";if(ENVIRONMENT_IS_NODE){const{createRequire}=await import("node:module");var require=createRequire(import.meta.url)}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("node:fs");if(_scriptName.startsWith("file:")){scriptDirectory=require("node:path").dirname(require("node:url").fileURLToPath(_scriptName))+"/"}readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var isFileURI=filename=>filename.startsWith("file://");class EmscriptenEH{}class EmscriptenSjLj extends EmscriptenEH{}var readyPromiseResolve,readyPromiseReject;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;wasmExports["H"]()}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what=`Aborted(${what})`;err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module["locateFile"]){return locateFile("sonare.wasm")}return new URL("sonare.wasm",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var HEAP16;var HEAP32;var HEAP64;var HEAP8;var HEAPF32;var HEAPF64;var HEAPU16;var HEAPU32;var HEAPU64;var HEAPU8;var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var noExitRuntime=true;class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}}var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);uncaughtExceptionCount++;abort()};var __abort_js=()=>abort("");var AsciiToString=ptr=>{var str="";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer]:pointer=>HEAPU8[pointer];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];case 8:return signed?pointer=>HEAP64[pointer>>3]:pointer=>HEAPU64[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0n;let fromWireType=value=>value;if(isUnsignedType){const bitSize=size*8;fromWireType=value=>BigInt.asUintN(bitSize,value);maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>{if(typeof value=="number"){value=BigInt(value)}return value},readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},readValueFromPointer:function(pointer){return this.fromWireType(HEAPU8[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var attachFinalizer=handle=>{if(!globalThis.FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};var delayFunction;var init_ClassHandle=()=>{let proto=ClassHandle.prototype;Object.assign(proto,{isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},isDeleted(){return!this.$$.ptr},deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}});const symbolDispose=Symbol.dispose;if(symbolDispose){proto[symbolDispose]=proto["delete"]}};function ClassHandle(){}var createNamedFunction=(name,func)=>Object.defineProperty(func,"name",{value:name});var registeredPointers={};var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[args.length].apply(this,args)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupported sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this.fromWireType(HEAPU32[pointer>>2])}var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var InternalError=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};var throwInternalError=message=>{throw new InternalError(message)};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&&registeredClass.baseClass===undefined){if(isConst){this.toWireType=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this.toWireType=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this.toWireType=genericPointerToWireType}}var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistent public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var embind__requireFunction=(signature,rawFunction,isAsync=false)=>{signature=AsciiToString(signature);function makeDynCaller(){var rtn=getWasmTableEntry(rawFunction);return rtn}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};class UnboundTypeError extends Error{}var getTypeName=type=>{var ptr=___getTypeName(type);var rv=AsciiToString(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(type=>typeDependencies[type]=dependentTypes);function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;for(let[i,dt]of dependentTypes.entries()){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}}if(0===unregisteredTypes.length){onComplete(typeConverters)}};var __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=AsciiToString(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(`Use 'new' to construct ${name}`)}if(undefined===registeredClass.constructor_body){throw new BindingError(`${name} has no accessible constructor`)}var body=registeredClass.constructor_body[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2])}return array};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function usesDestructorStack(argTypes){for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){return true}}return false}function createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync){var needsDestructorStack=usesDestructorStack(argTypes);var argCount=argTypes.length-2;var argsList=[];var argsListWired=["fn"];if(isClassMethodFunc){argsListWired.push("thisWired")}for(var i=0;i<argCount;++i){argsList.push(`arg${i}`);argsListWired.push(`arg${i}Wired`)}argsList=argsList.join(",");argsListWired=argsListWired.join(",");var invokerFnBody=`return function (${argsList}) {\n`;if(needsDestructorStack){invokerFnBody+="var destructors = [];\n"}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["humanName","throwBindingError","invoker","fn","runDestructors","fromRetWire","toClassParamWire"];if(isClassMethodFunc){invokerFnBody+=`var thisWired = toClassParamWire(${dtorStack}, this);\n`}for(var i=0;i<argCount;++i){var argName=`toArg${i}Wire`;invokerFnBody+=`var arg${i}Wired = ${argName}(${dtorStack}, arg${i});\n`;args1.push(argName)}invokerFnBody+=(returns||isAsync?"var rv = ":"")+`invoker(${argsListWired});\n`;if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+=`${paramName}_dtor(${paramName});\n`;args1.push(`${paramName}_dtor`)}}}if(returns){invokerFnBody+="var ret = fromRetWire(rv);\n"+"return ret;\n"}else{}invokerFnBody+="}\n";return new Function(args1,invokerFnBody)}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=usesDestructorStack(argTypes);var returns=!argTypes[0].isVoid;var retType=argTypes[0];var instType=argTypes[1];var closureArgs=[humanName,throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,retType.fromWireType.bind(retType),instType?.toWireType.bind(instType)];for(var i=2;i<argCount;++i){var argType=argTypes[i];closureArgs.push(argType.toWireType.bind(argType))}if(!needsDestructorStack){for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){if(argTypes[i].destructorFunction!==null){closureArgs.push(argTypes[i].destructorFunction)}}}let invokerFactory=createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync);var invokerFn=invokerFactory(...closureArgs);return createNamedFunction(humanName,invokerFn)}var __embind_register_class_constructor=(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex===-1)return signature;return signature.slice(0,argsIndex)};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync,isNonnullReturn)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=AsciiToString(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker,isAsync);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};var emval_freelist=[];var emval_handles=[0,1,,1,null,1,true,1,false,1];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){var value=emval_handles[handle];emval_handles[handle]=undefined;emval_freelist.push(handle)}};var Emval={toValue:handle=>{if(!handle){throwBindingError(`Cannot use deleted val. handle = ${handle}`)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var enumReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?function(pointer){return this.fromWireType(HEAP8[pointer])}:function(pointer){return this.fromWireType(HEAPU8[pointer])};case 2:return signed?function(pointer){return this.fromWireType(HEAP16[pointer>>1])}:function(pointer){return this.fromWireType(HEAPU16[pointer>>1])};case 4:return signed?function(pointer){return this.fromWireType(HEAP32[pointer>>2])}:function(pointer){return this.fromWireType(HEAPU32[pointer>>2])};default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};function getEnumValueType(rawValueType){return rawValueType===0?"object":rawValueType===1?"number":"string"}var __embind_register_enum=(rawType,name,size,isSigned,rawValueType)=>{name=AsciiToString(name);const valueType=getEnumValueType(rawValueType);switch(valueType){case"object":{function ctor(){}ctor.values={};registerType(rawType,{name,constructor:ctor,valueType,fromWireType:function(c){return this.constructor.values[c]},toWireType:(destructors,c)=>c.value,readValueFromPointer:enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor);break}case"number":{var keysMap={};registerType(rawType,{name,keysMap,valueType,fromWireType:c=>c,toWireType:(destructors,c)=>c,readValueFromPointer:enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,keysMap);delete Module[name].argCount;break}case"string":{var valuesMap={};var reverseMap={};var keysMap={};registerType(rawType,{name,valuesMap,reverseMap,keysMap,valueType,fromWireType:function(c){return this.reverseMap[c]},toWireType:function(destructors,c){return this.valuesMap[c]},readValueFromPointer:enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,keysMap);delete Module[name].argCount;break}}};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var __embind_register_enum_value=(rawEnumType,name,enumValue)=>{var enumType=requireRegisteredType(rawEnumType,"enum");name=AsciiToString(name);switch(enumType.valueType){case"object":{var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(`${enumType.name}_${name}`,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value;break}case"number":{enumType.keysMap[name]=enumValue;break}case"string":{enumType.valuesMap[name]=enumValue;enumType.reverseMap[enumValue]=name;enumType.keysMap[name]=name;break}}};var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this.fromWireType(HEAPF32[pointer>>2])};case 8:return function(pointer){return this.fromWireType(HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=AsciiToString(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker,isAsync);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,argTypes=>{var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0;let fromWireType=value=>value;if(isUnsignedType){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift;maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>value,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=AsciiToString(name);registerType(rawType,{name,fromWireType:decodeMemoryView,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.codePointAt(i);if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):"";var __embind_register_std_string=(rawType,name)=>{name=AsciiToString(name);var stdStringIsUTF8=true;registerType(rawType,{name,fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){str=UTF8ToString(payload,length,true)}else{str="";for(var i=0;i<length;++i){str+=String.fromCharCode(HEAPU8[payload+i])}}_free(value);return str},toWireType(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value=="string";if(!(valueIsOfTypeString||ArrayBuffer.isView(value)&&value.BYTES_PER_ELEMENT==1)){throwBindingError("Cannot pass non-string to std::string")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(valueIsOfTypeString){if(stdStringIsUTF8){stringToUTF8(value,ptr,length+1)}else{for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(base);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}}else{HEAPU8.set(value,ptr)}if(destructors!==null){destructors.push(_free,base)}return base},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var UTF16Decoder=globalThis.TextDecoder?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead,ignoreNul)=>{var idx=ptr>>1;var endIdx=findStringEnd(HEAPU16,idx,maxBytesToRead/2,ignoreNul);if(endIdx-idx>16&&UTF16Decoder)return UTF16Decoder.decode(HEAPU16.subarray(idx,endIdx));var str="";for(var i=idx;i<endIdx;++i){var codeUnit=HEAPU16[i];str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead,ignoreNul)=>{var str="";var startIdx=ptr>>2;for(var i=0;!(i>=maxBytesToRead/4);i++){var utf32=HEAPU32[startIdx+i];if(!utf32&&!ignoreNul)break;str+=String.fromCodePoint(utf32)}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codePoint=str.codePointAt(i);if(codePoint>65535){i++}HEAP32[outPtr>>2]=codePoint;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i<str.length;++i){var codePoint=str.codePointAt(i);if(codePoint>65535){i++}len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=AsciiToString(name);var decodeString,encodeString,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16}else{decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32}registerType(rawType,{name,fromWireType:value=>{var length=HEAPU32[value>>2];var str=decodeString(value+4,length*charSize,true);_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=AsciiToString(name);registerType(rawType,{isVoid:true,name,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var emval_methodCallers=[];var emval_addMethodCaller=caller=>{var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id};var emval_lookupTypes=(argCount,argTypes)=>{var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAPU32[argTypes+i*4>>2],`parameter ${i}`)}return a};var emval_returnValue=(toReturnWire,destructorsRef,handle)=>{var destructors=[];var result=toReturnWire(destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors)}return result};var emval_symbols={};var getStringOrSymbol=address=>{var symbol=emval_symbols[address];if(symbol===undefined){return AsciiToString(address)}return symbol};var __emval_create_invoker=(argCount,argTypesPtr,kind)=>{var GenericWireTypeSize=8;var[retType,...argTypes]=emval_lookupTypes(argCount,argTypesPtr);var toReturnWire=retType.toWireType.bind(retType);var argFromPtr=argTypes.map(type=>type.readValueFromPointer.bind(type));argCount--;var captures={toValue:Emval.toValue};var args=argFromPtr.map((argFromPtr,i)=>{var captureName=`argFromPtr${i}`;captures[captureName]=argFromPtr;return`${captureName}(args${i?"+"+i*GenericWireTypeSize:""})`});var functionBody;switch(kind){case 0:functionBody="toValue(handle)";break;case 2:functionBody="new (toValue(handle))";break;case 3:functionBody="";break;case 1:captures["getStringOrSymbol"]=getStringOrSymbol;functionBody="toValue(handle)[getStringOrSymbol(methodName)]";break}functionBody+=`(${args})`;if(!retType.isVoid){captures["toReturnWire"]=toReturnWire;captures["emval_returnValue"]=emval_returnValue;functionBody=`return emval_returnValue(toReturnWire, destructorsRef, ${functionBody})`}functionBody=`return function (handle, methodName, destructorsRef, args) {\n${functionBody}\n}`;var invokerFunction=new Function(Object.keys(captures),functionBody)(...Object.values(captures));var functionName=`methodCaller<(${argTypes.map(t=>t.name)}) => ${retType.name}>`;return emval_addMethodCaller(createNamedFunction(functionName,invokerFunction))};var __emval_get_global=name=>{if(!name){return Emval.toHandle(globalThis)}name=getStringOrSymbol(name);return Emval.toHandle(globalThis[name])};var __emval_get_property=(handle,key)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);return Emval.toHandle(handle[key])};var __emval_incref=handle=>{if(handle>9){emval_handles[handle+1]+=1}};var __emval_invoke=(caller,handle,methodName,destructorsRef,args)=>emval_methodCallers[caller](handle,methodName,destructorsRef,args);var __emval_new_array=()=>Emval.toHandle([]);var __emval_new_cstring=v=>Emval.toHandle(getStringOrSymbol(v));var __emval_new_object=()=>Emval.toHandle({});var __emval_run_destructors=handle=>{var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)};var __emval_set_property=(handle,key,value)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);value=Emval.toValue(value);handle[key]=value};var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};init_ClassHandle();init_RegisteredPointer();{if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["UTF8ToString"]=UTF8ToString;var ___getTypeName,_malloc,_free,memory,__indirect_function_table,wasmMemory,wasmTable;function assignWasmExports(wasmExports){___getTypeName=wasmExports["I"];_malloc=wasmExports["K"];_free=wasmExports["L"];memory=wasmMemory=wasmExports["G"];__indirect_function_table=wasmTable=wasmExports["J"]}var wasmImports={d:___cxa_throw,z:__abort_js,u:__embind_register_bigint,C:__embind_register_bool,F:__embind_register_class,E:__embind_register_class_constructor,m:__embind_register_class_function,A:__embind_register_emval,p:__embind_register_enum,j:__embind_register_enum_value,t:__embind_register_float,e:__embind_register_function,o:__embind_register_integer,l:__embind_register_memory_view,B:__embind_register_std_string,r:__embind_register_std_wstring,D:__embind_register_void,i:__emval_create_invoker,a:__emval_decref,q:__emval_get_global,s:__emval_get_property,f:__emval_incref,h:__emval_invoke,n:__emval_new_array,c:__emval_new_cstring,k:__emval_new_object,g:__emval_run_destructors,b:__emval_set_property,v:__tzset_js,y:_emscripten_resize_heap,w:_environ_get,x:_environ_sizes_get};function run(){preRun();function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}
1
+ async function Sonare(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";if(ENVIRONMENT_IS_NODE){const{createRequire}=await import("node:module");var require=createRequire(import.meta.url)}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("node:fs");if(_scriptName.startsWith("file:")){scriptDirectory=require("node:path").dirname(require("node:url").fileURLToPath(_scriptName))+"/"}readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var isFileURI=filename=>filename.startsWith("file://");class EmscriptenEH{}class EmscriptenSjLj extends EmscriptenEH{}var readyPromiseResolve,readyPromiseReject;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;wasmExports["I"]()}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what=`Aborted(${what})`;err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module["locateFile"]){return locateFile("sonare.wasm")}return new URL("sonare.wasm",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var HEAP16;var HEAP32;var HEAP64;var HEAP8;var HEAPF32;var HEAPF64;var HEAPU16;var HEAPU32;var HEAPU64;var HEAPU8;var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var noExitRuntime=true;class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}}var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);uncaughtExceptionCount++;abort()};var __abort_js=()=>abort("");var AsciiToString=ptr=>{var str="";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer]:pointer=>HEAPU8[pointer];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];case 8:return signed?pointer=>HEAP64[pointer>>3]:pointer=>HEAPU64[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0n;let fromWireType=value=>value;if(isUnsignedType){const bitSize=size*8;fromWireType=value=>BigInt.asUintN(bitSize,value);maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>{if(typeof value=="number"){value=BigInt(value)}return value},readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},readValueFromPointer:function(pointer){return this.fromWireType(HEAPU8[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var attachFinalizer=handle=>{if(!globalThis.FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};var delayFunction;var init_ClassHandle=()=>{let proto=ClassHandle.prototype;Object.assign(proto,{isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},isDeleted(){return!this.$$.ptr},deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}});const symbolDispose=Symbol.dispose;if(symbolDispose){proto[symbolDispose]=proto["delete"]}};function ClassHandle(){}var createNamedFunction=(name,func)=>Object.defineProperty(func,"name",{value:name});var registeredPointers={};var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[args.length].apply(this,args)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupported sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this.fromWireType(HEAPU32[pointer>>2])}var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var InternalError=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};var throwInternalError=message=>{throw new InternalError(message)};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&&registeredClass.baseClass===undefined){if(isConst){this.toWireType=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this.toWireType=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this.toWireType=genericPointerToWireType}}var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistent public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var embind__requireFunction=(signature,rawFunction,isAsync=false)=>{signature=AsciiToString(signature);function makeDynCaller(){var rtn=getWasmTableEntry(rawFunction);return rtn}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};class UnboundTypeError extends Error{}var getTypeName=type=>{var ptr=___getTypeName(type);var rv=AsciiToString(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(type=>typeDependencies[type]=dependentTypes);function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;for(let[i,dt]of dependentTypes.entries()){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}}if(0===unregisteredTypes.length){onComplete(typeConverters)}};var __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=AsciiToString(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(`Use 'new' to construct ${name}`)}if(undefined===registeredClass.constructor_body){throw new BindingError(`${name} has no accessible constructor`)}var body=registeredClass.constructor_body[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2])}return array};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function usesDestructorStack(argTypes){for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){return true}}return false}function createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync){var needsDestructorStack=usesDestructorStack(argTypes);var argCount=argTypes.length-2;var argsList=[];var argsListWired=["fn"];if(isClassMethodFunc){argsListWired.push("thisWired")}for(var i=0;i<argCount;++i){argsList.push(`arg${i}`);argsListWired.push(`arg${i}Wired`)}argsList=argsList.join(",");argsListWired=argsListWired.join(",");var invokerFnBody=`return function (${argsList}) {\n`;if(needsDestructorStack){invokerFnBody+="var destructors = [];\n"}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["humanName","throwBindingError","invoker","fn","runDestructors","fromRetWire","toClassParamWire"];if(isClassMethodFunc){invokerFnBody+=`var thisWired = toClassParamWire(${dtorStack}, this);\n`}for(var i=0;i<argCount;++i){var argName=`toArg${i}Wire`;invokerFnBody+=`var arg${i}Wired = ${argName}(${dtorStack}, arg${i});\n`;args1.push(argName)}invokerFnBody+=(returns||isAsync?"var rv = ":"")+`invoker(${argsListWired});\n`;if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+=`${paramName}_dtor(${paramName});\n`;args1.push(`${paramName}_dtor`)}}}if(returns){invokerFnBody+="var ret = fromRetWire(rv);\n"+"return ret;\n"}else{}invokerFnBody+="}\n";return new Function(args1,invokerFnBody)}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=usesDestructorStack(argTypes);var returns=!argTypes[0].isVoid;var retType=argTypes[0];var instType=argTypes[1];var closureArgs=[humanName,throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,retType.fromWireType.bind(retType),instType?.toWireType.bind(instType)];for(var i=2;i<argCount;++i){var argType=argTypes[i];closureArgs.push(argType.toWireType.bind(argType))}if(!needsDestructorStack){for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){if(argTypes[i].destructorFunction!==null){closureArgs.push(argTypes[i].destructorFunction)}}}let invokerFactory=createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync);var invokerFn=invokerFactory(...closureArgs);return createNamedFunction(humanName,invokerFn)}var __embind_register_class_constructor=(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex===-1)return signature;return signature.slice(0,argsIndex)};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync,isNonnullReturn)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=AsciiToString(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker,isAsync);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};var emval_freelist=[];var emval_handles=[0,1,,1,null,1,true,1,false,1];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){var value=emval_handles[handle];emval_handles[handle]=undefined;emval_freelist.push(handle)}};var Emval={toValue:handle=>{if(!handle){throwBindingError(`Cannot use deleted val. handle = ${handle}`)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var enumReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?function(pointer){return this.fromWireType(HEAP8[pointer])}:function(pointer){return this.fromWireType(HEAPU8[pointer])};case 2:return signed?function(pointer){return this.fromWireType(HEAP16[pointer>>1])}:function(pointer){return this.fromWireType(HEAPU16[pointer>>1])};case 4:return signed?function(pointer){return this.fromWireType(HEAP32[pointer>>2])}:function(pointer){return this.fromWireType(HEAPU32[pointer>>2])};default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};function getEnumValueType(rawValueType){return rawValueType===0?"object":rawValueType===1?"number":"string"}var __embind_register_enum=(rawType,name,size,isSigned,rawValueType)=>{name=AsciiToString(name);const valueType=getEnumValueType(rawValueType);switch(valueType){case"object":{function ctor(){}ctor.values={};registerType(rawType,{name,constructor:ctor,valueType,fromWireType:function(c){return this.constructor.values[c]},toWireType:(destructors,c)=>c.value,readValueFromPointer:enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor);break}case"number":{var keysMap={};registerType(rawType,{name,keysMap,valueType,fromWireType:c=>c,toWireType:(destructors,c)=>c,readValueFromPointer:enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,keysMap);delete Module[name].argCount;break}case"string":{var valuesMap={};var reverseMap={};var keysMap={};registerType(rawType,{name,valuesMap,reverseMap,keysMap,valueType,fromWireType:function(c){return this.reverseMap[c]},toWireType:function(destructors,c){return this.valuesMap[c]},readValueFromPointer:enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,keysMap);delete Module[name].argCount;break}}};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var __embind_register_enum_value=(rawEnumType,name,enumValue)=>{var enumType=requireRegisteredType(rawEnumType,"enum");name=AsciiToString(name);switch(enumType.valueType){case"object":{var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(`${enumType.name}_${name}`,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value;break}case"number":{enumType.keysMap[name]=enumValue;break}case"string":{enumType.valuesMap[name]=enumValue;enumType.reverseMap[enumValue]=name;enumType.keysMap[name]=name;break}}};var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this.fromWireType(HEAPF32[pointer>>2])};case 8:return function(pointer){return this.fromWireType(HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=AsciiToString(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker,isAsync);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,argTypes=>{var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0;let fromWireType=value=>value;if(isUnsignedType){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift;maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>value,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=AsciiToString(name);registerType(rawType,{name,fromWireType:decodeMemoryView,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.codePointAt(i);if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):"";var __embind_register_std_string=(rawType,name)=>{name=AsciiToString(name);var stdStringIsUTF8=true;registerType(rawType,{name,fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){str=UTF8ToString(payload,length,true)}else{str="";for(var i=0;i<length;++i){str+=String.fromCharCode(HEAPU8[payload+i])}}_free(value);return str},toWireType(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value=="string";if(!(valueIsOfTypeString||ArrayBuffer.isView(value)&&value.BYTES_PER_ELEMENT==1)){throwBindingError("Cannot pass non-string to std::string")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(valueIsOfTypeString){if(stdStringIsUTF8){stringToUTF8(value,ptr,length+1)}else{for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(base);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}}else{HEAPU8.set(value,ptr)}if(destructors!==null){destructors.push(_free,base)}return base},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var UTF16Decoder=globalThis.TextDecoder?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead,ignoreNul)=>{var idx=ptr>>1;var endIdx=findStringEnd(HEAPU16,idx,maxBytesToRead/2,ignoreNul);if(endIdx-idx>16&&UTF16Decoder)return UTF16Decoder.decode(HEAPU16.subarray(idx,endIdx));var str="";for(var i=idx;i<endIdx;++i){var codeUnit=HEAPU16[i];str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead,ignoreNul)=>{var str="";var startIdx=ptr>>2;for(var i=0;!(i>=maxBytesToRead/4);i++){var utf32=HEAPU32[startIdx+i];if(!utf32&&!ignoreNul)break;str+=String.fromCodePoint(utf32)}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codePoint=str.codePointAt(i);if(codePoint>65535){i++}HEAP32[outPtr>>2]=codePoint;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i<str.length;++i){var codePoint=str.codePointAt(i);if(codePoint>65535){i++}len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=AsciiToString(name);var decodeString,encodeString,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16}else{decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32}registerType(rawType,{name,fromWireType:value=>{var length=HEAPU32[value>>2];var str=decodeString(value+4,length*charSize,true);_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=AsciiToString(name);registerType(rawType,{isVoid:true,name,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var emval_methodCallers=[];var emval_addMethodCaller=caller=>{var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id};var emval_lookupTypes=(argCount,argTypes)=>{var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAPU32[argTypes+i*4>>2],`parameter ${i}`)}return a};var emval_returnValue=(toReturnWire,destructorsRef,handle)=>{var destructors=[];var result=toReturnWire(destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors)}return result};var emval_symbols={};var getStringOrSymbol=address=>{var symbol=emval_symbols[address];if(symbol===undefined){return AsciiToString(address)}return symbol};var __emval_create_invoker=(argCount,argTypesPtr,kind)=>{var GenericWireTypeSize=8;var[retType,...argTypes]=emval_lookupTypes(argCount,argTypesPtr);var toReturnWire=retType.toWireType.bind(retType);var argFromPtr=argTypes.map(type=>type.readValueFromPointer.bind(type));argCount--;var captures={toValue:Emval.toValue};var args=argFromPtr.map((argFromPtr,i)=>{var captureName=`argFromPtr${i}`;captures[captureName]=argFromPtr;return`${captureName}(args${i?"+"+i*GenericWireTypeSize:""})`});var functionBody;switch(kind){case 0:functionBody="toValue(handle)";break;case 2:functionBody="new (toValue(handle))";break;case 3:functionBody="";break;case 1:captures["getStringOrSymbol"]=getStringOrSymbol;functionBody="toValue(handle)[getStringOrSymbol(methodName)]";break}functionBody+=`(${args})`;if(!retType.isVoid){captures["toReturnWire"]=toReturnWire;captures["emval_returnValue"]=emval_returnValue;functionBody=`return emval_returnValue(toReturnWire, destructorsRef, ${functionBody})`}functionBody=`return function (handle, methodName, destructorsRef, args) {\n${functionBody}\n}`;var invokerFunction=new Function(Object.keys(captures),functionBody)(...Object.values(captures));var functionName=`methodCaller<(${argTypes.map(t=>t.name)}) => ${retType.name}>`;return emval_addMethodCaller(createNamedFunction(functionName,invokerFunction))};var __emval_get_global=name=>{if(!name){return Emval.toHandle(globalThis)}name=getStringOrSymbol(name);return Emval.toHandle(globalThis[name])};var __emval_get_property=(handle,key)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);return Emval.toHandle(handle[key])};var __emval_incref=handle=>{if(handle>9){emval_handles[handle+1]+=1}};var __emval_invoke=(caller,handle,methodName,destructorsRef,args)=>emval_methodCallers[caller](handle,methodName,destructorsRef,args);var __emval_new_array=()=>Emval.toHandle([]);var __emval_new_cstring=v=>Emval.toHandle(getStringOrSymbol(v));var __emval_new_object=()=>Emval.toHandle({});var __emval_run_destructors=handle=>{var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)};var __emval_set_property=(handle,key,value)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);value=Emval.toValue(value);handle[key]=value};var __emval_typeof=handle=>{handle=Emval.toValue(handle);return Emval.toHandle(typeof handle)};var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};init_ClassHandle();init_RegisteredPointer();{if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}Module["UTF8ToString"]=UTF8ToString;var ___getTypeName,_malloc,_free,memory,__indirect_function_table,wasmMemory,wasmTable;function assignWasmExports(wasmExports){___getTypeName=wasmExports["J"];_malloc=wasmExports["L"];_free=wasmExports["M"];memory=wasmMemory=wasmExports["H"];__indirect_function_table=wasmTable=wasmExports["K"]}var wasmImports={a:___cxa_throw,B:__abort_js,v:__embind_register_bigint,E:__embind_register_bool,w:__embind_register_class,G:__embind_register_class_constructor,m:__embind_register_class_function,C:__embind_register_emval,r:__embind_register_enum,k:__embind_register_enum_value,u:__embind_register_float,f:__embind_register_function,p:__embind_register_integer,n:__embind_register_memory_view,D:__embind_register_std_string,s:__embind_register_std_wstring,F:__embind_register_void,i:__emval_create_invoker,b:__emval_decref,q:__emval_get_global,o:__emval_get_property,c:__emval_incref,h:__emval_invoke,l:__emval_new_array,d:__emval_new_cstring,j:__emval_new_object,g:__emval_run_destructors,e:__emval_set_property,t:__emval_typeof,x:__tzset_js,A:_emscripten_resize_heap,y:_environ_get,z:_environ_sizes_get};function run(){preRun();function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}
2
2
  ;return moduleRtn}export default Sonare;
package/dist/sonare.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libraz/libsonare",
3
- "version": "1.0.4",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "packageManager": "yarn@4.12.0",
6
6
  "description": "Audio analysis library for music information retrieval",
@@ -15,23 +15,22 @@
15
15
  "./package.json": "./package.json"
16
16
  },
17
17
  "files": [
18
- "dist"
18
+ "dist",
19
+ "src"
19
20
  ],
20
21
  "sideEffects": false,
21
22
  "scripts": {
22
- "prepare": "simple-git-hooks || true",
23
- "build": "yarn build:wasm && yarn build:js",
24
- "build:wasm": "emcmake cmake -B build-wasm -DBUILD_WASM=ON -DCMAKE_BUILD_TYPE=Release && cmake --build build-wasm",
25
- "build:js": "tsc",
26
- "clean": "rm -rf dist build-wasm",
27
- "lint": "biome check js/ tests/wasm/ bindings/node/src/ bindings/node/tests/",
28
- "lint:fix": "biome check --write js/ tests/wasm/ bindings/node/src/ bindings/node/tests/",
29
- "format": "biome format --write js/ tests/wasm/ bindings/node/src/ bindings/node/tests/",
23
+ "build": "yarn build:js && yarn build:wasm",
24
+ "build:wasm": "mkdir -p build-wasm/em-cache && EM_CACHE=$PWD/build-wasm/em-cache emcmake cmake -S ../.. -B build-wasm -DBUILD_WASM=ON -DBUILD_MASTERING=ON -DCMAKE_BUILD_TYPE=Release && EM_CACHE=$PWD/build-wasm/em-cache cmake --build build-wasm",
25
+ "bench:wasm:isp": "mkdir -p build-wasm-bench/em-cache /tmp/libsonare-wasm-bench && EM_CACHE=$PWD/build-wasm-bench/em-cache emcmake cmake -S ../.. -B build-wasm-bench -DBUILD_WASM=ON -DBUILD_MASTERING=ON -DBUILD_BENCH=ON -DBUILD_TESTING=OFF -DBUILD_CLI=OFF -DCMAKE_BUILD_TYPE=Release && EM_CACHE=$PWD/build-wasm-bench/em-cache cmake --build build-wasm-bench --target sonare_mastering_isp_bench && cp build-wasm-bench/bin/sonare_mastering_isp_bench.js /tmp/libsonare-wasm-bench/sonare_mastering_isp_bench.cjs && cp build-wasm-bench/bin/sonare_mastering_isp_bench.wasm /tmp/libsonare-wasm-bench/sonare_mastering_isp_bench.wasm && node /tmp/libsonare-wasm-bench/sonare_mastering_isp_bench.cjs",
26
+ "build:js": "tsup",
27
+ "clean": "rm -rf dist build-wasm LICENSE",
28
+ "lint": "biome check src/ tests/",
29
+ "lint:fix": "biome check --write src/ tests/",
30
+ "format": "biome format --write src/ tests/",
30
31
  "test": "vitest run",
31
32
  "test:watch": "vitest",
32
- "prepublishOnly": "yarn clean && yarn build && yarn lint && yarn test",
33
- "prepack": "cp README.md .readme-backup && cp README.npm.md README.md",
34
- "postpack": "mv .readme-backup README.md"
33
+ "prepublishOnly": "yarn clean && cp ../../LICENSE LICENSE && yarn build && yarn lint && yarn test"
35
34
  },
36
35
  "keywords": [
37
36
  "audio",
@@ -59,24 +58,12 @@
59
58
  },
60
59
  "devDependencies": {
61
60
  "@biomejs/biome": "^2.4.15",
62
- "lint-staged": "^17.0.4",
63
- "simple-git-hooks": "^2.13.1",
61
+ "tsup": "^8.5.1",
64
62
  "typescript": "^6.0.3",
65
63
  "vitest": "^4.1.5"
66
64
  },
67
65
  "volta": {
68
66
  "node": "22.21.1",
69
67
  "yarn": "4.12.0"
70
- },
71
- "simple-git-hooks": {
72
- "pre-commit": "yarn lint-staged"
73
- },
74
- "lint-staged": {
75
- "{js,tests/wasm}/**/*.{ts,js}": [
76
- "biome check --write"
77
- ],
78
- "bindings/node/{src,tests}/**/*.{ts,js}": [
79
- "biome check --write"
80
- ]
81
68
  }
82
69
  }