From 209ce0e81bdf23adb84e4a913f1082fa116e26f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dirk=20B=C3=A4umer?= Date: Tue, 7 May 2024 16:12:01 +0200 Subject: [PATCH] Add wasm based examples (#1018) * WIP * Add custom add request * Update package.json * Component model resource example * Update to latest wit-bindgen * WIP * Minor example updates * Update wasm-lsp example * Added some minor comments * Minor renames * Change lsp server to count files * More model resource work * WIP * Make the example work * Update examples to latest * Update sample to latest tooling * Update sample to latest wit2ts tooling * WIP * Carry over https://github.com/microsoft/vscode-docs/pull/7234/files * Code cleanup * Remove dist folder * Remove another dist folder --- wasm-component-model-resource/.eslintignore | 5 + wasm-component-model-resource/.eslintrc.js | 21 + wasm-component-model-resource/.gitignore | 2 + .../.vscode/launch.json | 19 + wasm-component-model-resource/Cargo.lock | 313 ++ wasm-component-model-resource/Cargo.toml | 12 + wasm-component-model-resource/README.md | 27 + wasm-component-model-resource/bin/esbuild.js | 71 + .../package-lock.json | 3041 ++++++++++++ wasm-component-model-resource/package.json | 55 + .../src/calculator.rs | 545 +++ .../src/calculator.ts | 178 + .../src/extension.ts | 53 + wasm-component-model-resource/src/lib.rs | 77 + wasm-component-model-resource/tsconfig.json | 26 + .../wit/calculator.wit | 22 + wasm-component-model/.gitignore | 3 +- .../dist/desktop/extension.js | 3813 --------------- .../dist/desktop/extension.js.map | 7 - wasm-component-model/dist/web/extension.js | 4165 ----------------- .../dist/web/extension.js.map | 7 - wasm-component-model/package-lock.json | 8 +- wasm-component-model/package.json | 4 +- wasm-component-model/src/calculator.ts | 151 + wasm-component-model/src/example.ts | 164 - wasm-component-model/src/extension.ts | 30 +- wasm-component-model/src/lib.rs | 11 +- wasm-language-server/client/package-lock.json | 20 +- wasm-language-server/client/package.json | 4 +- wasm-language-server/client/src/extension.ts | 15 +- wasm-language-server/package.json | 9 + wasm-language-server/server/Cargo.lock | 51 + wasm-language-server/server/Cargo.toml | 1 + wasm-language-server/server/src/main.rs | 18 +- .../testbed/workspace/test.txt | 1 + 35 files changed, 4743 insertions(+), 8206 deletions(-) create mode 100644 wasm-component-model-resource/.eslintignore create mode 100644 wasm-component-model-resource/.eslintrc.js create mode 100644 wasm-component-model-resource/.gitignore create mode 100644 wasm-component-model-resource/.vscode/launch.json create mode 100644 wasm-component-model-resource/Cargo.lock create mode 100644 wasm-component-model-resource/Cargo.toml create mode 100644 wasm-component-model-resource/README.md create mode 100644 wasm-component-model-resource/bin/esbuild.js create mode 100644 wasm-component-model-resource/package-lock.json create mode 100644 wasm-component-model-resource/package.json create mode 100644 wasm-component-model-resource/src/calculator.rs create mode 100644 wasm-component-model-resource/src/calculator.ts create mode 100644 wasm-component-model-resource/src/extension.ts create mode 100644 wasm-component-model-resource/src/lib.rs create mode 100644 wasm-component-model-resource/tsconfig.json create mode 100644 wasm-component-model-resource/wit/calculator.wit delete mode 100644 wasm-component-model/dist/desktop/extension.js delete mode 100644 wasm-component-model/dist/desktop/extension.js.map delete mode 100644 wasm-component-model/dist/web/extension.js delete mode 100644 wasm-component-model/dist/web/extension.js.map create mode 100644 wasm-component-model/src/calculator.ts delete mode 100644 wasm-component-model/src/example.ts create mode 100644 wasm-language-server/testbed/workspace/test.txt diff --git a/wasm-component-model-resource/.eslintignore b/wasm-component-model-resource/.eslintignore new file mode 100644 index 00000000..7af653ef --- /dev/null +++ b/wasm-component-model-resource/.eslintignore @@ -0,0 +1,5 @@ +node_modules/** +out +dist +src/example.ts +bin \ No newline at end of file diff --git a/wasm-component-model-resource/.eslintrc.js b/wasm-component-model-resource/.eslintrc.js new file mode 100644 index 00000000..fefb4039 --- /dev/null +++ b/wasm-component-model-resource/.eslintrc.js @@ -0,0 +1,21 @@ +/**@type {import('eslint').Linter.Config} */ +// eslint-disable-next-line no-undef +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + plugins: [ + '@typescript-eslint', + ], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + ], + rules: { + 'semi': [2, "always"], + '@typescript-eslint/no-unused-vars': 0, + '@typescript-eslint/no-explicit-any': 0, + '@typescript-eslint/explicit-module-boundary-types': 0, + '@typescript-eslint/no-non-null-assertion': 0, + '@typescript-eslint/no-namespace': "off" + } +}; \ No newline at end of file diff --git a/wasm-component-model-resource/.gitignore b/wasm-component-model-resource/.gitignore new file mode 100644 index 00000000..22a146e8 --- /dev/null +++ b/wasm-component-model-resource/.gitignore @@ -0,0 +1,2 @@ +target +dist \ No newline at end of file diff --git a/wasm-component-model-resource/.vscode/launch.json b/wasm-component-model-resource/.vscode/launch.json new file mode 100644 index 00000000..77d3b092 --- /dev/null +++ b/wasm-component-model-resource/.vscode/launch.json @@ -0,0 +1,19 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "extensionHost", + "request": "launch", + "name": "Run Example", + "runtimeExecutable": "${execPath}", + "args": [ + "--extensionDevelopmentPath=${workspaceRoot}", + ], + "outFiles": [ + "${workspaceRoot}/out/**/*.js" + ], + "sourceMaps": true, + "preLaunchTask": "npm: build" + } + ] +} \ No newline at end of file diff --git a/wasm-component-model-resource/Cargo.lock b/wasm-component-model-resource/Cargo.lock new file mode 100644 index 00000000..a8374a54 --- /dev/null +++ b/wasm-component-model-resource/Cargo.lock @@ -0,0 +1,313 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "anyhow" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "calculator" +version = "0.1.0" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "id-arena" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown", + "serde", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "proc-macro2" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "ryu" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" + +[[package]] +name = "semver" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" + +[[package]] +name = "serde" +version = "1.0.197" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.197" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "spdx" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ef1a0fa1e39ac22972c8db23ff89aea700ab96aa87114e1fb55937a631a0c9" +dependencies = [ + "smallvec", +] + +[[package]] +name = "syn" +version = "2.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "wasm-encoder" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfd106365a7f5f7aa3c1916a98cbb3ad477f5ff96ddb130285a91c6e7429e67a" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-metadata" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "094aea3cb90e09f16ee25a4c0e324b3e8c934e7fd838bfa039aef5352f44a917" +dependencies = [ + "anyhow", + "indexmap", + "serde", + "serde_derive", + "serde_json", + "spdx", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6998515d3cf3f8b980ef7c11b29a9b1017d4cf86b99ae93b546992df9931413" +dependencies = [ + "bitflags", + "indexmap", + "semver", +] + +[[package]] +name = "wit-bindgen" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb4e7653763780be47e38f479e9aa83c768aa6a3b2ed086dc2826fdbbb7e7f5" +dependencies = [ + "wit-bindgen-rt", + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b67e11c950041849a10828c7600ea62a4077c01e8af72e8593253575428f91b" +dependencies = [ + "anyhow", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0780cf7046630ed70f689a098cd8d56c5c3b22f2a7379bbdb088879963ff96" +dependencies = [ + "bitflags", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30acbe8fb708c3a830a33c4cb705df82659bf831b492ec6ca1a17a369cfeeafb" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b1b06eae85feaecdf9f2854f7cac124e00d5a6e5014bfb02eb1ecdeb5f265b9" +dependencies = [ + "anyhow", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c836b1fd9932de0431c1758d8be08212071b6bba0151f7bac826dbc4312a2a9" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744237b488352f4f27bca05a10acb79474415951c450e52ebd0da784c1df2bcc" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] diff --git a/wasm-component-model-resource/Cargo.toml b/wasm-component-model-resource/Cargo.toml new file mode 100644 index 00000000..5e334640 --- /dev/null +++ b/wasm-component-model-resource/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "calculator" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +crate-type = ["cdylib"] + +[dependencies] +wit-bindgen = "0.24.0" \ No newline at end of file diff --git a/wasm-component-model-resource/README.md b/wasm-component-model-resource/README.md new file mode 100644 index 00000000..f9875f49 --- /dev/null +++ b/wasm-component-model-resource/README.md @@ -0,0 +1,27 @@ +# WASM Component Model Example + +An example demonstrating how to use the component model to integrate WebAssembly code into VS Code. + + +## Functionality + +A simple calculator that can perform add, sub, mul and div. The calculator is implemented in Rust and compiled to WebAssembly code and then call from JavaScript. + +## Pre-requisites + +To run the sample the following tool chains need to be installed + +- [Rust](https://www.rust-lang.org/): installation instructions can be found [here](https://www.rust-lang.org/tools/install) +- [wasm-tools](https://github.com/bytecodealliance/wasm-tools): releases can be found [here](https://github.com/bytecodealliance/wasm-tools/releases). You need at least version >= 1.200 to run the example. + +## Running the Sample in the Desktop + +- Run `npm install` in this folder. This installs all necessary npm modules. +- Open VS Code on this folder. +- Execute the launch config `Run Example`. + +## Running the Sample in the Web + +As a pre-requisite follow the instructions [here](https://code.visualstudio.com/api/extension-guides/web-extensions#test-your-web-extension-in-vscode.dev) to generate necessary certificate to side load the extension into vscode.dev or insiders.vscode.dev. + +Then compile the extension for the Web by running `npm run esbuild`, start a local extension server using `npm run serve`, open vscode.dev or insiders.vscode.dev in a browser and execute the command `Install Extension from Location`. As a location use `https://localhost:5000`. \ No newline at end of file diff --git a/wasm-component-model-resource/bin/esbuild.js b/wasm-component-model-resource/bin/esbuild.js new file mode 100644 index 00000000..28035cbd --- /dev/null +++ b/wasm-component-model-resource/bin/esbuild.js @@ -0,0 +1,71 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +//@ts-check +const esbuild = require('esbuild'); + +/** + * @typedef {import('esbuild').BuildOptions} BuildOptions + */ + +/** @type BuildOptions */ +const sharedWebOptions = { + bundle: true, + external: ['vscode'], + target: 'es2020', + platform: 'browser', + sourcemap: true, +}; + +/** @type BuildOptions */ +const webOptions = { + entryPoints: ['src/extension.ts'], + outfile: 'dist/web/extension.js', + format: 'cjs', + ...sharedWebOptions, +}; + +/** @type BuildOptions */ +const sharedDesktopOptions = { + bundle: true, + external: ['vscode'], + target: 'es2020', + platform: 'node', + sourcemap: true, +}; + +/** @type BuildOptions */ +const desktopOptions = { + entryPoints: ['src/extension.ts'], + outfile: 'dist/desktop/extension.js', + format: 'cjs', + ...sharedDesktopOptions, +}; + +function createContexts() { + return Promise.all([ + esbuild.context(webOptions), + esbuild.context(desktopOptions), + ]); +} + +createContexts().then(contexts => { + if (process.argv[2] === '--watch') { + const promises = []; + for (const context of contexts) { + promises.push(context.watch()); + } + return Promise.all(promises).then(() => { return undefined; }); + } else { + const promises = []; + for (const context of contexts) { + promises.push(context.rebuild()); + } + Promise.all(promises).then(async () => { + for (const context of contexts) { + await context.dispose(); + } + }).then(() => { return undefined; }).catch(console.error); + } +}).catch(console.error); \ No newline at end of file diff --git a/wasm-component-model-resource/package-lock.json b/wasm-component-model-resource/package-lock.json new file mode 100644 index 00000000..460d6cb6 --- /dev/null +++ b/wasm-component-model-resource/package-lock.json @@ -0,0 +1,3041 @@ +{ + "name": "wasm-component-model-resource", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "wasm-component-model-resource", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@vscode/wasm-component-model": "0.1.0-pre.11" + }, + "devDependencies": { + "@types/node": "^18.14.6", + "@types/vscode": "1.88.0", + "@typescript-eslint/eslint-plugin": "^7.6.0", + "@typescript-eslint/parser": "^7.6.0", + "esbuild": "^0.20.2", + "eslint": "^8.57.0", + "serve": "^14.2.1", + "typescript": "^5.4.5" + }, + "engines": { + "vscode": "^1.88.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.19.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", + "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@types/vscode": { + "version": "1.88.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.88.0.tgz", + "integrity": "sha512-rWY+Bs6j/f1lvr8jqZTyp5arRMfovdxolcqGi+//+cPDOh8SBvzXH90e7BiSXct5HJ9HGW6jATchbRTpTJpEkw==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.6.0.tgz", + "integrity": "sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.6.0", + "@typescript-eslint/type-utils": "7.6.0", + "@typescript-eslint/utils": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.6.0.tgz", + "integrity": "sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.6.0", + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/typescript-estree": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz", + "integrity": "sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.6.0.tgz", + "integrity": "sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.6.0", + "@typescript-eslint/utils": "7.6.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz", + "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz", + "integrity": "sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.6.0.tgz", + "integrity": "sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.6.0", + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/typescript-estree": "7.6.0", + "semver": "^7.6.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz", + "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vscode/wasm-component-model": { + "version": "0.1.0-pre.11", + "resolved": "https://registry.npmjs.org/@vscode/wasm-component-model/-/wasm-component-model-0.1.0-pre.11.tgz", + "integrity": "sha512-52MPesjJMOgpv4K/Knek5J/szqquVx7Ji2IVfgEXYDUoE80u4aQSkPwnCBSoaIf4fECDTBtjijl4s7zAKq/58w==", + "dependencies": { + "semver": "^7.6.0", + "uuid": "^9.0.1", + "yargs": "^17.7.2" + }, + "bin": { + "wit2ts": "bin/wit2ts" + }, + "engines": { + "node": ">=18.18.2" + } + }, + "node_modules/@zeit/schemas": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz", + "integrity": "sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/boxen": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", + "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/boxen/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", + "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", + "dev": true, + "dependencies": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-port-reachable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", + "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "dev": true, + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serve": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.1.tgz", + "integrity": "sha512-48er5fzHh7GCShLnNyPBRPEjs2I6QBozeGr02gaacROiyS/8ARADlj595j39iZXAqBbJHH/ivJJyPRWY9sQWZA==", + "dev": true, + "dependencies": { + "@zeit/schemas": "2.29.0", + "ajv": "8.11.0", + "arg": "5.0.2", + "boxen": "7.0.0", + "chalk": "5.0.1", + "chalk-template": "0.4.0", + "clipboardy": "3.0.0", + "compression": "1.7.4", + "is-port-reachable": "4.0.0", + "serve-handler": "6.1.5", + "update-check": "1.5.4" + }, + "bin": { + "serve": "build/main.js" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "dev": true, + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/serve/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/serve/node_modules/chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/serve/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/update-check": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", + "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", + "dev": true, + "dependencies": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dev": true, + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/widest-line/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/wasm-component-model-resource/package.json b/wasm-component-model-resource/package.json new file mode 100644 index 00000000..2f75fdca --- /dev/null +++ b/wasm-component-model-resource/package.json @@ -0,0 +1,55 @@ +{ + "name": "wasm-component-model-resource", + "description": "An example implementing a calculator using a resource.", + "author": "Microsoft Corporation", + "license": "MIT", + "version": "1.0.0", + "repository": { + "type": "git", + "url": "https://github.com/Microsoft/vscode-extension-samples" + }, + "publisher": "vscode-samples", + "categories": [], + "keywords": [ + "WASM", + "Component Model" + ], + "engines": { + "vscode": "^1.88.0" + }, + "main": "./out/extension", + "browser": "./dist/web/extension", + "contributes": { + "commands": [ + { + "command": "vscode-samples.wasm-component-model.run", + "category": "Samples", + "title": "Run Calc Service" + } + ] + }, + "dependencies": { + "@vscode/wasm-component-model": "0.1.0-pre.11" + }, + "devDependencies": { + "@types/vscode": "1.88.0", + "@types/node": "^18.14.6", + "@typescript-eslint/eslint-plugin": "^7.6.0", + "@typescript-eslint/parser": "^7.6.0", + "eslint": "^8.57.0", + "typescript": "^5.4.5", + "esbuild": "^0.20.2", + "serve": "^14.2.1" + }, + "scripts": { + "vscode:prepublish": "npm run compile", + "build": "npm run compile && cargo build --target wasm32-unknown-unknown", + "wit-bindgen": "wit-bindgen rust --out-dir ./src ./wit", + "compile": "tsc -b", + "watch": "tsc -b -w", + "lint": "eslint ./src --ext .ts,.tsx", + "esbuild": "node ./bin/esbuild.js", + "generate:model": "wit2ts --outDir ./src ./wit", + "serve": "serve --cors -l 5000 --ssl-cert $HOME/certs/localhost.pem --ssl-key $HOME/certs/localhost-key.pem" + } +} \ No newline at end of file diff --git a/wasm-component-model-resource/src/calculator.rs b/wasm-component-model-resource/src/calculator.rs new file mode 100644 index 00000000..6f844c9d --- /dev/null +++ b/wasm-component-model-resource/src/calculator.rs @@ -0,0 +1,545 @@ +// Generated by `wit-bindgen` 0.24.0. DO NOT EDIT! +// Options used: +#[allow(dead_code)] +pub mod exports { + #[allow(dead_code)] + pub mod vscode { + #[allow(dead_code)] + pub mod example { + #[allow(dead_code, clippy::all)] + pub mod types { + #[used] + #[doc(hidden)] + #[cfg(target_arch = "wasm32")] + static __FORCE_SECTION_REF: fn() = super::super::super::super::__link_custom_section_describing_imports; + use super::super::super::super::_rt; + #[repr(u8)] + #[derive(Clone, Copy, Eq, PartialEq)] + pub enum Operation { + Add, + Sub, + Mul, + Div, + } + impl ::core::fmt::Debug for Operation { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Operation::Add => { + f.debug_tuple("Operation::Add").finish() + } + Operation::Sub => { + f.debug_tuple("Operation::Sub").finish() + } + Operation::Mul => { + f.debug_tuple("Operation::Mul").finish() + } + Operation::Div => { + f.debug_tuple("Operation::Div").finish() + } + } + } + } + + impl Operation{ + pub(crate) unsafe fn _lift(val: u8) -> Operation{ + if !cfg!(debug_assertions) { + return ::core::mem::transmute(val); + } + + match val { + 0 => Operation::Add, + 1 => Operation::Sub, + 2 => Operation::Mul, + 3 => Operation::Div, + + _ => panic!("invalid enum discriminant"), + } + } + } + + + #[derive(Debug)] + #[repr(transparent)] + pub struct Engine{ + handle: _rt::Resource, + } + + type _EngineRep = Option; + + impl Engine{ + /// Creates a new resource from the specified representation. + /// + /// This function will create a new resource handle by moving `val` onto + /// the heap and then passing that heap pointer to the component model to + /// create a handle. The owned handle is then returned as `Engine`. + pub fn new(val: T) -> Self { + Self::type_guard::(); + let val: _EngineRep = Some(val); + let ptr: *mut _EngineRep = + _rt::Box::into_raw(_rt::Box::new(val)); + unsafe { + Self::from_handle(T::_resource_new(ptr.cast())) + } + } + + /// Gets access to the underlying `T` which represents this resource. + pub fn get(&self) -> &T { + let ptr = unsafe { &*self.as_ptr::() }; + ptr.as_ref().unwrap() + } + + /// Gets mutable access to the underlying `T` which represents this + /// resource. + pub fn get_mut(&mut self) -> &mut T { + let ptr = unsafe { &mut *self.as_ptr::() }; + ptr.as_mut().unwrap() + } + + /// Consumes this resource and returns the underlying `T`. + pub fn into_inner(self) -> T { + let ptr = unsafe { &mut *self.as_ptr::() }; + ptr.take().unwrap() + } + + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + + // It's theoretically possible to implement the `GuestEngine` trait twice + // so guard against using it with two different types here. + #[doc(hidden)] + fn type_guard() { + use core::any::TypeId; + static mut LAST_TYPE: Option = None; + unsafe { + assert!(!cfg!(target_feature = "threads")); + let id = TypeId::of::(); + match LAST_TYPE { + Some(ty) => assert!(ty == id, "cannot use two types with this resource type"), + None => LAST_TYPE = Some(id), + } + } + } + + #[doc(hidden)] + pub unsafe fn dtor(handle: *mut u8) { + Self::type_guard::(); + let _ = _rt::Box::from_raw(handle as *mut _EngineRep); + } + + fn as_ptr(&self) -> *mut _EngineRep { + Engine::type_guard::(); + T::_resource_rep(self.handle()).cast() + } + } + + /// A borrowed version of [`Engine`] which represents a borrowed value + /// with the lifetime `'a`. + #[derive(Debug)] + #[repr(transparent)] + pub struct EngineBorrow<'a> { + rep: *mut u8, + _marker: core::marker::PhantomData<&'a Engine>, + } + + impl<'a> EngineBorrow<'a>{ + #[doc(hidden)] + pub unsafe fn lift(rep: usize) -> Self { + Self { + rep: rep as *mut u8, + _marker: core::marker::PhantomData, + } + } + + /// Gets access to the underlying `T` in this resource. + pub fn get(&self) -> &T { + let ptr = unsafe { &mut *self.as_ptr::() }; + ptr.as_ref().unwrap() + } + + // NB: mutable access is not allowed due to the component model allowing + // multiple borrows of the same resource. + + fn as_ptr(&self) -> *mut _EngineRep { + Engine::type_guard::(); + self.rep.cast() + } + } + + + unsafe impl _rt::WasmResource for Engine{ + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "[export]vscode:example/types")] + extern "C" { + #[link_name = "[resource-drop]engine"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + + #[doc(hidden)] + #[allow(non_snake_case)] + pub unsafe fn _export_constructor_engine_cabi() -> i32 {#[cfg(target_arch="wasm32")] + _rt::run_ctors_once();let result0 = Engine::new(T::new()); + (result0).take_handle() as i32 + } + #[doc(hidden)] + #[allow(non_snake_case)] + pub unsafe fn _export_method_engine_push_operand_cabi(arg0: *mut u8,arg1: i32,) {#[cfg(target_arch="wasm32")] + _rt::run_ctors_once();T::push_operand(EngineBorrow::lift(arg0 as u32 as usize).get(), arg1 as u32); + } + #[doc(hidden)] + #[allow(non_snake_case)] + pub unsafe fn _export_method_engine_push_operation_cabi(arg0: *mut u8,arg1: i32,) {#[cfg(target_arch="wasm32")] + _rt::run_ctors_once();T::push_operation(EngineBorrow::lift(arg0 as u32 as usize).get(), Operation::_lift(arg1 as u8)); + } + #[doc(hidden)] + #[allow(non_snake_case)] + pub unsafe fn _export_method_engine_execute_cabi(arg0: *mut u8,) -> i32 {#[cfg(target_arch="wasm32")] + _rt::run_ctors_once();let result0 = T::execute(EngineBorrow::lift(arg0 as u32 as usize).get()); + _rt::as_i32(result0) +} +pub trait Guest { + type Engine: GuestEngine; +} +pub trait GuestEngine: 'static { + + #[doc(hidden)] + unsafe fn _resource_new(val: *mut u8) -> u32 + where Self: Sized + { + #[cfg(not(target_arch = "wasm32"))] + { + let _ = val; + unreachable!(); + } + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "[export]vscode:example/types")] + extern "C" { + #[link_name = "[resource-new]engine"] + fn new(_: *mut u8) -> u32; + } + new(val) + } + } + + #[doc(hidden)] + fn _resource_rep(handle: u32) -> *mut u8 + where Self: Sized + { + #[cfg(not(target_arch = "wasm32"))] + { + let _ = handle; + unreachable!(); + } + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "[export]vscode:example/types")] + extern "C" { + #[link_name = "[resource-rep]engine"] + fn rep(_: u32) -> *mut u8; + } + unsafe { + rep(handle) + } + } + } + + + fn new() -> Self; + fn push_operand(&self,operand: u32,); + fn push_operation(&self,operation: Operation,); + fn execute(&self,) -> u32; +} +#[doc(hidden)] + +macro_rules! __export_vscode_example_types_cabi{ + ($ty:ident with_types_in $($path_to_types:tt)*) => (const _: () = { + + #[export_name = "vscode:example/types#[constructor]engine"] + unsafe extern "C" fn export_constructor_engine() -> i32 { + $($path_to_types)*::_export_constructor_engine_cabi::<<$ty as $($path_to_types)*::Guest>::Engine>() + } + #[export_name = "vscode:example/types#[method]engine.push-operand"] + unsafe extern "C" fn export_method_engine_push_operand(arg0: *mut u8,arg1: i32,) { + $($path_to_types)*::_export_method_engine_push_operand_cabi::<<$ty as $($path_to_types)*::Guest>::Engine>(arg0, arg1) + } + #[export_name = "vscode:example/types#[method]engine.push-operation"] + unsafe extern "C" fn export_method_engine_push_operation(arg0: *mut u8,arg1: i32,) { + $($path_to_types)*::_export_method_engine_push_operation_cabi::<<$ty as $($path_to_types)*::Guest>::Engine>(arg0, arg1) + } + #[export_name = "vscode:example/types#[method]engine.execute"] + unsafe extern "C" fn export_method_engine_execute(arg0: *mut u8,) -> i32 { + $($path_to_types)*::_export_method_engine_execute_cabi::<<$ty as $($path_to_types)*::Guest>::Engine>(arg0) + } + + const _: () = { + #[doc(hidden)] + #[export_name = "vscode:example/types#[dtor]engine"] + #[allow(non_snake_case)] + unsafe extern "C" fn dtor(rep: *mut u8) { + $($path_to_types)*::Engine::dtor::< + <$ty as $($path_to_types)*::Guest>::Engine + >(rep) + } + }; + + };); +} +#[doc(hidden)] +pub(crate) use __export_vscode_example_types_cabi; + +} + +} +} +} +mod _rt { + + + use core::fmt; + use core::marker; + use core::sync::atomic::{AtomicU32, Ordering::Relaxed}; + + /// A type which represents a component model resource, either imported or + /// exported into this component. + /// + /// This is a low-level wrapper which handles the lifetime of the resource + /// (namely this has a destructor). The `T` provided defines the component model + /// intrinsics that this wrapper uses. + /// + /// One of the chief purposes of this type is to provide `Deref` implementations + /// to access the underlying data when it is owned. + /// + /// This type is primarily used in generated code for exported and imported + /// resources. + #[repr(transparent)] + pub struct Resource { + // NB: This would ideally be `u32` but it is not. The fact that this has + // interior mutability is not exposed in the API of this type except for the + // `take_handle` method which is supposed to in theory be private. + // + // This represents, almost all the time, a valid handle value. When it's + // invalid it's stored as `u32::MAX`. + handle: AtomicU32, + _marker: marker::PhantomData, + } + + /// A trait which all wasm resources implement, namely providing the ability to + /// drop a resource. + /// + /// This generally is implemented by generated code, not user-facing code. + pub unsafe trait WasmResource { + /// Invokes the `[resource-drop]...` intrinsic. + unsafe fn drop(handle: u32); + } + + impl Resource { + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + debug_assert!(handle != u32::MAX); + Self { + handle: AtomicU32::new(handle), + _marker: marker::PhantomData, + } + } + + /// Takes ownership of the handle owned by `resource`. + /// + /// Note that this ideally would be `into_handle` taking `Resource` by + /// ownership. The code generator does not enable that in all situations, + /// unfortunately, so this is provided instead. + /// + /// Also note that `take_handle` is in theory only ever called on values + /// owned by a generated function. For example a generated function might + /// take `Resource` as an argument but then call `take_handle` on a + /// reference to that argument. In that sense the dynamic nature of + /// `take_handle` should only be exposed internally to generated code, not + /// to user code. + #[doc(hidden)] + pub fn take_handle(resource: &Resource) -> u32 { + resource.handle.swap(u32::MAX, Relaxed) + } + + #[doc(hidden)] + pub fn handle(resource: &Resource) -> u32 { + resource.handle.load(Relaxed) + } + } + + impl fmt::Debug for Resource { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Resource") + .field("handle", &self.handle) + .finish() + } + } + + impl Drop for Resource { + fn drop(&mut self) { + unsafe { + match self.handle.load(Relaxed) { + // If this handle was "taken" then don't do anything in the + // destructor. + u32::MAX => {} + + // ... but otherwise do actually destroy it with the imported + // component model intrinsic as defined through `T`. + other => T::drop(other), + } + } + } + } + pub use alloc_crate::boxed::Box; + + #[cfg(target_arch = "wasm32")] + pub fn run_ctors_once() { + wit_bindgen::rt::run_ctors_once(); + } + + pub fn as_i32(t: T) -> i32 { + t.as_i32() + } + + pub trait AsI32 { + fn as_i32(self) -> i32; + } + + impl<'a, T: Copy + AsI32> AsI32 for &'a T { + fn as_i32(self) -> i32 { + (*self).as_i32() + } + } + + impl AsI32 for i32 { + #[inline] + fn as_i32(self) -> i32 { + self as i32 + } + } + + impl AsI32 for u32 { + #[inline] + fn as_i32(self) -> i32 { + self as i32 + } + } + + impl AsI32 for i16 { + #[inline] + fn as_i32(self) -> i32 { + self as i32 + } + } + + impl AsI32 for u16 { + #[inline] + fn as_i32(self) -> i32 { + self as i32 + } + } + + impl AsI32 for i8 { + #[inline] + fn as_i32(self) -> i32 { + self as i32 + } + } + + impl AsI32 for u8 { + #[inline] + fn as_i32(self) -> i32 { + self as i32 + } + } + + impl AsI32 for char { + #[inline] + fn as_i32(self) -> i32 { + self as i32 + } + } + + impl AsI32 for usize { + #[inline] + fn as_i32(self) -> i32 { + self as i32 + } + } + extern crate alloc as alloc_crate; +} + +/// Generates `#[no_mangle]` functions to export the specified type as the +/// root implementation of all generated traits. +/// +/// For more information see the documentation of `wit_bindgen::generate!`. +/// +/// ```rust +/// # macro_rules! export{ ($($t:tt)*) => (); } +/// # trait Guest {} +/// struct MyType; +/// +/// impl Guest for MyType { +/// // ... +/// } +/// +/// export!(MyType); +/// ``` +#[allow(unused_macros)] +#[doc(hidden)] + +macro_rules! __export_calculator_impl { + ($ty:ident) => (self::export!($ty with_types_in self);); + ($ty:ident with_types_in $($path_to_types_root:tt)*) => ( + $($path_to_types_root)*::exports::vscode::example::types::__export_vscode_example_types_cabi!($ty with_types_in $($path_to_types_root)*::exports::vscode::example::types); + ) +} +#[doc(inline)] +pub(crate) use __export_calculator_impl as export; + +#[cfg(target_arch = "wasm32")] +#[link_section = "component-type:wit-bindgen:0.24.0:calculator:encoded world"] +#[doc(hidden)] +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 419] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xa2\x02\x01A\x02\x01\ +A\x02\x01B\x0d\x01m\x04\x03add\x03sub\x03mul\x03div\x04\0\x09operation\x03\0\0\x04\ +\0\x06engine\x03\x01\x01i\x02\x01@\0\0\x03\x04\0\x13[constructor]engine\x01\x04\x01\ +h\x02\x01@\x02\x04self\x05\x07operandy\x01\0\x04\0\x1b[method]engine.push-operan\ +d\x01\x06\x01@\x02\x04self\x05\x09operation\x01\x01\0\x04\0\x1d[method]engine.pu\ +sh-operation\x01\x07\x01@\x01\x04self\x05\0y\x04\0\x16[method]engine.execute\x01\ +\x08\x04\x01\x14vscode:example/types\x05\0\x04\x01\x19vscode:example/calculator\x04\ +\0\x0b\x10\x01\0\x0acalculator\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0d\ +wit-component\x070.202.0\x10wit-bindgen-rust\x060.24.0"; + +#[inline(never)] +#[doc(hidden)] +#[cfg(target_arch = "wasm32")] +pub fn __link_custom_section_describing_imports() { + wit_bindgen::rt::maybe_link_cabi_realloc(); +} + diff --git a/wasm-component-model-resource/src/calculator.ts b/wasm-component-model-resource/src/calculator.ts new file mode 100644 index 00000000..a8551d81 --- /dev/null +++ b/wasm-component-model-resource/src/calculator.ts @@ -0,0 +1,178 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/* eslint-disable @typescript-eslint/ban-types */ +import * as $wcm from '@vscode/wasm-component-model'; +import type { u32, own, i32 } from '@vscode/wasm-component-model'; + +export namespace Types { + export enum Operation { + add = 'add', + sub = 'sub', + mul = 'mul', + div = 'div' + } + + export namespace Engine { + export interface Interface extends $wcm.Resource { + pushOperand(operand: u32): void; + + pushOperation(operation: Operation): void; + + execute(): u32; + } + export type Statics = { + }; + export type Class = Statics & { + new(): Interface; + }; + } + export type Engine = Engine.Interface; +} +export type Types = { + Engine: Types.Engine.Class; +}; +export namespace calculator { + export type Imports = { + }; + export type Exports = { + types: Types; + }; +} + +export namespace Types.$ { + export const Operation = new $wcm.EnumType(['add', 'sub', 'mul', 'div']); + export const Engine = new $wcm.ResourceType('engine', 'vscode:example/types/engine'); + export const Engine_Handle = new $wcm.ResourceHandleType('engine'); + Engine.addDestructor('$drop', new $wcm.DestructorType('[resource-drop]engine', [['inst', Engine]])); + Engine.addConstructor('constructor', new $wcm.ConstructorType('[constructor]engine', [], new $wcm.OwnType(Engine_Handle))); + Engine.addMethod('pushOperand', new $wcm.MethodType('[method]engine.push-operand', [ + ['operand', $wcm.u32], + ], undefined)); + Engine.addMethod('pushOperation', new $wcm.MethodType('[method]engine.push-operation', [ + ['operation', Operation], + ], undefined)); + Engine.addMethod('execute', new $wcm.MethodType('[method]engine.execute', [], $wcm.u32)); +} +export namespace Types._ { + export const id = 'vscode:example/types' as const; + export const witName = 'types' as const; + export namespace Engine { + export type WasmInterface = { + '[constructor]engine': () => i32; + '[method]engine.push-operand': (self: i32, operand: i32) => void; + '[method]engine.push-operation': (self: i32, operation_Operation: i32) => void; + '[method]engine.execute': (self: i32) => i32; + }; + type ObjectModule = { + 'constructor'(): own<$wcm.ResourceHandle>; + pushOperand(self: Engine, operand: u32): void; + pushOperation(self: Engine, operation: Operation): void; + execute(self: Engine): u32; + }; + export namespace imports { + export type WasmInterface = Engine.WasmInterface & { '[resource-drop]engine': (self: i32) => void }; + } + export namespace exports { + export type WasmInterface = Engine.WasmInterface & { '[dtor]engine': (self: i32) => void }; + class Impl extends $wcm.Resource.Default implements Types.Engine.Interface { + private readonly _rep: $wcm.ResourceRepresentation; + private readonly _om: ObjectModule; + constructor(om: ObjectModule); + constructor(handleTag: symbol, handle: $wcm.ResourceHandle, rm: $wcm.ResourceManager, om: ObjectModule); + constructor(...args: any[]); + constructor(...args: any[]) { + if (args[0] === $wcm.ResourceManager.handleTag) { + const handle = args[1] as $wcm.ResourceHandle; + super(handle); + this._rep = (args[2] as $wcm.ResourceManager).getRepresentation(handle); + this._om = args[3] as ObjectModule; + } else { + const rm = args[0] as $wcm.ResourceManager; + const om = args[1] as ObjectModule; + super(om.constructor()); + this._rep = rm.getRepresentation(this.$handle()); + this._om = om; + } + } + public $rep(): $wcm.ResourceRepresentation { return this._rep; } + public pushOperand(operand: u32): void { + return this._om.pushOperand(this, operand); + } + public pushOperation(operation: Operation): void { + return this._om.pushOperation(this, operation); + } + public execute(): u32 { + return this._om.execute(this); + } + } + export function Class(wasmInterface: WasmInterface, context: $wcm.WasmContext): Types.Engine.Class { + const resource = Types.$.Engine; + const rm: $wcm.ResourceManager = context.resources.ensure('vscode:example/types/engine'); + const om: ObjectModule = $wcm.Module.createObjectModule(resource, wasmInterface, context); + return class extends Impl { + constructor(); + constructor(handleTag: symbol, handle: $wcm.ResourceHandle); + constructor(...args: any[]) { + super(...args, rm, om); + rm.registerProxy(this); + } + }; + } + } + } + export const types: Map = new Map([ + ['Operation', $.Operation], + ['Engine', $.Engine] + ]); + export const resources: Map}> = new Map}>([ + ['Engine', { resource: $.Engine, factory: Engine.exports.Class }] + ]); + export type WasmInterface = { + }; + export namespace imports { + export type WasmInterface = _.WasmInterface & Engine.imports.WasmInterface; + } + export namespace exports { + export type WasmInterface = _.WasmInterface & Engine.exports.WasmInterface; + export namespace imports { + export type WasmInterface = { + '[resource-new]engine': (rep: i32) => i32; + '[resource-rep]engine': (handle: i32) => i32; + '[resource-drop]engine': (handle: i32) => void; + }; + } + } +} +export namespace calculator.$ { +} +export namespace calculator._ { + export const id = 'vscode:example/calculator' as const; + export const witName = 'calculator' as const; + export type Imports = { + '[export]vscode:example/types': Types._.exports.imports.WasmInterface; + }; + export namespace imports { + export function create(service: calculator.Imports, context: $wcm.WasmContext): Imports { + return $wcm.Imports.create(_, service, context); + } + export function loop(service: calculator.Imports, context: $wcm.WasmContext): calculator.Imports { + return $wcm.Imports.loop(_, service, context); + } + } + export type Exports = { + 'vscode:example/types#[constructor]engine': () => i32; + 'vscode:example/types#[method]engine.push-operand': (self: i32, operand: i32) => void; + 'vscode:example/types#[method]engine.push-operation': (self: i32, operation_Operation: i32) => void; + 'vscode:example/types#[method]engine.execute': (self: i32) => i32; + }; + export namespace exports { + export const interfaces: Map = new Map([ + ['Types', Types._] + ]); + export function bind(exports: Exports, context: $wcm.WasmContext): calculator.Exports { + return $wcm.Exports.bind(_, exports, context); + } + } +} \ No newline at end of file diff --git a/wasm-component-model-resource/src/extension.ts b/wasm-component-model-resource/src/extension.ts new file mode 100644 index 00000000..c7f39558 --- /dev/null +++ b/wasm-component-model-resource/src/extension.ts @@ -0,0 +1,53 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +import * as vscode from 'vscode'; +import { WasmContext, Memory } from '@vscode/wasm-component-model'; + +import { calculator, Types } from './calculator'; + +export async function activate(context: vscode.ExtensionContext): Promise { + // The channel for printing the result. + const channel = vscode.window.createOutputChannel('Calculator'); + context.subscriptions.push(channel); + + // The channel for printing the log. + const log = vscode.window.createOutputChannel('Calculator - Log', { log: true }); + context.subscriptions.push(log); + + // Load the Wasm module + const filename = vscode.Uri.joinPath(context.extensionUri, 'target', 'wasm32-unknown-unknown', 'debug', 'calculator.wasm'); + const bits = await vscode.workspace.fs.readFile(filename); + const module = await WebAssembly.compile(bits); + + // The context for the WASM module + const wasmContext: WasmContext.Default = new WasmContext.Default(); + + // Instantiate the module and create the necessary imports from the service implementation + const instance = await WebAssembly.instantiate(module, calculator._.imports.create({}, wasmContext)); + // Bind the WASM memory to the context + wasmContext.initialize(new Memory.Default(instance.exports)); + + // Bind the JavaScript Api + const api = calculator._.exports.bind(instance.exports as calculator._.Exports, wasmContext); + +context.subscriptions.push(vscode.commands.registerCommand('vscode-samples.wasm-component-model.run', () => { + channel.show(); + channel.appendLine('Running calculator example'); + + // Create a new calculator engine + const calculator = new api.types.Engine(); + + // Push some operands and operations + calculator.pushOperand(10); + calculator.pushOperand(20); + calculator.pushOperation(Types.Operation.add); + calculator.pushOperand(2); + calculator.pushOperation(Types.Operation.mul); + + // Calculate the result + const result = calculator.execute(); + channel.appendLine(`Result: ${result}`); +})); +} \ No newline at end of file diff --git a/wasm-component-model-resource/src/lib.rs b/wasm-component-model-resource/src/lib.rs new file mode 100644 index 00000000..569212b1 --- /dev/null +++ b/wasm-component-model-resource/src/lib.rs @@ -0,0 +1,77 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +mod calculator; + +use std::cell::RefCell; +use crate::calculator::exports::vscode::example::types::{ Guest, GuestEngine, Operation }; + +struct EngineImpl { + left: Option, + right: Option, +} + +impl EngineImpl { + fn new() -> Self { + EngineImpl { + left: None, + right: None, + } + } + + fn push_operand(&mut self, operand: u32) { + if self.left == None { + self.left = Some(operand); + } else { + self.right = Some(operand); + } + } + + fn push_operation(&mut self, operation: Operation) { + let left = self.left.unwrap(); + let right = self.right.unwrap(); + self.left = Some(match operation { + Operation::Add => left + right, + Operation::Sub => left - right, + Operation::Mul => left * right, + Operation::Div => left / right, + }); + } + + fn execute(&mut self) -> u32 { + self.left.unwrap() + } +} + +struct CalcEngine { + stack: RefCell, +} + +impl GuestEngine for CalcEngine { + + fn new() -> Self { + CalcEngine { + stack: RefCell::new(EngineImpl::new()) + } + } + + fn push_operand(&self, operand: u32) { + self.stack.borrow_mut().push_operand(operand); + } + + fn push_operation(&self,operation:Operation) { + self.stack.borrow_mut().push_operation(operation); + } + + fn execute(&self) -> u32 { + return self.stack.borrow_mut().execute(); + } +} + +struct Implementation; +impl Guest for Implementation { + type Engine = CalcEngine; +} + +calculator::export!(Implementation with_types_in calculator); \ No newline at end of file diff --git a/wasm-component-model-resource/tsconfig.json b/wasm-component-model-resource/tsconfig.json new file mode 100644 index 00000000..c562cd8a --- /dev/null +++ b/wasm-component-model-resource/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "rootDir": "./src", + "skipLibCheck": true, + "lib": [ + "es2022", + "webworker" + ], + "types": [ + "vscode" + ], + "module": "Node16", + "moduleResolution": "Node16", + "outDir": "./out", + "strict": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "declaration": true, + "stripInternal": true, + "sourceMap": true, + "declarationMap": true, + "noUnusedLocals": false, + "noUnusedParameters": false + } +} \ No newline at end of file diff --git a/wasm-component-model-resource/wit/calculator.wit b/wasm-component-model-resource/wit/calculator.wit new file mode 100644 index 00000000..90923854 --- /dev/null +++ b/wasm-component-model-resource/wit/calculator.wit @@ -0,0 +1,22 @@ +// wit/calculator.wit +package vscode:example; + +interface types { + + enum operation { + add, + sub, + mul, + div + } + + resource engine { + constructor(); + push-operand: func(operand: u32); + push-operation: func(operation: operation); + execute: func() -> u32; + } +} +world calculator { + export types; +} \ No newline at end of file diff --git a/wasm-component-model/.gitignore b/wasm-component-model/.gitignore index 1de56593..22a146e8 100644 --- a/wasm-component-model/.gitignore +++ b/wasm-component-model/.gitignore @@ -1 +1,2 @@ -target \ No newline at end of file +target +dist \ No newline at end of file diff --git a/wasm-component-model/dist/desktop/extension.js b/wasm-component-model/dist/desktop/extension.js deleted file mode 100644 index 7cba848d..00000000 --- a/wasm-component-model/dist/desktop/extension.js +++ /dev/null @@ -1,3813 +0,0 @@ -"use strict"; -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; -var __esm = (fn, res) => function __init() { - return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; -}; -var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); -var __publicField = (obj, key, value) => { - __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); - return value; -}; - -// node_modules/@vscode/wasm-component-model/lib/common/ral.js -var require_ral = __commonJS({ - "node_modules/@vscode/wasm-component-model/lib/common/ral.js"(exports2) { - "use strict"; - Object.defineProperty(exports2, "__esModule", { value: true }); - var _ral; - function RAL() { - if (_ral === void 0) { - throw new Error(`No runtime abstraction layer installed`); - } - return _ral; - } - (function(RAL2) { - function install(ral) { - if (ral === void 0) { - throw new Error(`No runtime abstraction layer provided`); - } - _ral = ral; - } - RAL2.install = install; - function isInstalled() { - return _ral !== void 0; - } - RAL2.isInstalled = isInstalled; - })(RAL || (RAL = {})); - exports2.default = RAL; - } -}); - -// node_modules/@vscode/wasm-component-model/lib/node/ril.js -var require_ril = __commonJS({ - "node_modules/@vscode/wasm-component-model/lib/node/ril.js"(exports2) { - "use strict"; - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - var util_1 = require("util"); - var ral_1 = __importDefault(require_ral()); - var _ril = Object.freeze({ - TextEncoder: Object.freeze({ - create(encoding = "utf-8") { - return { - encode(input) { - return Buffer.from(input ?? "", encoding); - } - }; - } - }), - TextDecoder: Object.freeze({ - create(encoding = "utf-8") { - return new util_1.TextDecoder(encoding); - } - }), - console, - timer: Object.freeze({ - setTimeout(callback, ms, ...args) { - const handle = setTimeout(callback, ms, ...args); - return { dispose: () => clearTimeout(handle) }; - }, - setImmediate(callback, ...args) { - const handle = setImmediate(callback, ...args); - return { dispose: () => clearImmediate(handle) }; - }, - setInterval(callback, ms, ...args) { - const handle = setInterval(callback, ms, ...args); - return { dispose: () => clearInterval(handle) }; - } - }) - }); - function RIL() { - return _ril; - } - (function(RIL2) { - function install() { - if (!ral_1.default.isInstalled()) { - ral_1.default.install(_ril); - } - } - RIL2.install = install; - })(RIL || (RIL = {})); - if (!ral_1.default.isInstalled()) { - ral_1.default.install(_ril); - } - exports2.default = RIL; - } -}); - -// node_modules/uuid/dist/esm-node/rng.js -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - import_crypto.default.randomFillSync(rnds8Pool); - poolPtr = 0; - } - return rnds8Pool.slice(poolPtr, poolPtr += 16); -} -var import_crypto, rnds8Pool, poolPtr; -var init_rng = __esm({ - "node_modules/uuid/dist/esm-node/rng.js"() { - import_crypto = __toESM(require("crypto")); - rnds8Pool = new Uint8Array(256); - poolPtr = rnds8Pool.length; - } -}); - -// node_modules/uuid/dist/esm-node/regex.js -var regex_default; -var init_regex = __esm({ - "node_modules/uuid/dist/esm-node/regex.js"() { - regex_default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; - } -}); - -// node_modules/uuid/dist/esm-node/validate.js -function validate(uuid) { - return typeof uuid === "string" && regex_default.test(uuid); -} -var validate_default; -var init_validate = __esm({ - "node_modules/uuid/dist/esm-node/validate.js"() { - init_regex(); - validate_default = validate; - } -}); - -// node_modules/uuid/dist/esm-node/stringify.js -function unsafeStringify(arr, offset = 0) { - return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]; -} -function stringify(arr, offset = 0) { - const uuid = unsafeStringify(arr, offset); - if (!validate_default(uuid)) { - throw TypeError("Stringified UUID is invalid"); - } - return uuid; -} -var byteToHex, stringify_default; -var init_stringify = __esm({ - "node_modules/uuid/dist/esm-node/stringify.js"() { - init_validate(); - byteToHex = []; - for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 256).toString(16).slice(1)); - } - stringify_default = stringify; - } -}); - -// node_modules/uuid/dist/esm-node/v1.js -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== void 0 ? options.clockseq : _clockseq; - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || rng)(); - if (node == null) { - node = _nodeId = [seedBytes[0] | 1, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } - if (clockseq == null) { - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383; - } - } - let msecs = options.msecs !== void 0 ? options.msecs : Date.now(); - let nsecs = options.nsecs !== void 0 ? options.nsecs : _lastNSecs + 1; - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4; - if (dt < 0 && options.clockseq === void 0) { - clockseq = clockseq + 1 & 16383; - } - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === void 0) { - nsecs = 0; - } - if (nsecs >= 1e4) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; - msecs += 122192928e5; - const tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296; - b[i++] = tl >>> 24 & 255; - b[i++] = tl >>> 16 & 255; - b[i++] = tl >>> 8 & 255; - b[i++] = tl & 255; - const tmh = msecs / 4294967296 * 1e4 & 268435455; - b[i++] = tmh >>> 8 & 255; - b[i++] = tmh & 255; - b[i++] = tmh >>> 24 & 15 | 16; - b[i++] = tmh >>> 16 & 255; - b[i++] = clockseq >>> 8 | 128; - b[i++] = clockseq & 255; - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } - return buf || unsafeStringify(b); -} -var _nodeId, _clockseq, _lastMSecs, _lastNSecs, v1_default; -var init_v1 = __esm({ - "node_modules/uuid/dist/esm-node/v1.js"() { - init_rng(); - init_stringify(); - _lastMSecs = 0; - _lastNSecs = 0; - v1_default = v1; - } -}); - -// node_modules/uuid/dist/esm-node/parse.js -function parse(uuid) { - if (!validate_default(uuid)) { - throw TypeError("Invalid UUID"); - } - let v; - const arr = new Uint8Array(16); - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 255; - arr[2] = v >>> 8 & 255; - arr[3] = v & 255; - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 255; - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 255; - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 255; - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255; - arr[11] = v / 4294967296 & 255; - arr[12] = v >>> 24 & 255; - arr[13] = v >>> 16 & 255; - arr[14] = v >>> 8 & 255; - arr[15] = v & 255; - return arr; -} -var parse_default; -var init_parse = __esm({ - "node_modules/uuid/dist/esm-node/parse.js"() { - init_validate(); - parse_default = parse; - } -}); - -// node_modules/uuid/dist/esm-node/v35.js -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); - const bytes = []; - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - return bytes; -} -function v35(name, version2, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - var _namespace; - if (typeof value === "string") { - value = stringToBytes(value); - } - if (typeof namespace === "string") { - namespace = parse_default(namespace); - } - if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) { - throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)"); - } - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 15 | version2; - bytes[8] = bytes[8] & 63 | 128; - if (buf) { - offset = offset || 0; - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - return buf; - } - return unsafeStringify(bytes); - } - try { - generateUUID.name = name; - } catch (err) { - } - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} -var DNS, URL; -var init_v35 = __esm({ - "node_modules/uuid/dist/esm-node/v35.js"() { - init_stringify(); - init_parse(); - DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; - URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; - } -}); - -// node_modules/uuid/dist/esm-node/md5.js -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === "string") { - bytes = Buffer.from(bytes, "utf8"); - } - return import_crypto2.default.createHash("md5").update(bytes).digest(); -} -var import_crypto2, md5_default; -var init_md5 = __esm({ - "node_modules/uuid/dist/esm-node/md5.js"() { - import_crypto2 = __toESM(require("crypto")); - md5_default = md5; - } -}); - -// node_modules/uuid/dist/esm-node/v3.js -var v3, v3_default; -var init_v3 = __esm({ - "node_modules/uuid/dist/esm-node/v3.js"() { - init_v35(); - init_md5(); - v3 = v35("v3", 48, md5_default); - v3_default = v3; - } -}); - -// node_modules/uuid/dist/esm-node/native.js -var import_crypto3, native_default; -var init_native = __esm({ - "node_modules/uuid/dist/esm-node/native.js"() { - import_crypto3 = __toESM(require("crypto")); - native_default = { - randomUUID: import_crypto3.default.randomUUID - }; - } -}); - -// node_modules/uuid/dist/esm-node/v4.js -function v4(options, buf, offset) { - if (native_default.randomUUID && !buf && !options) { - return native_default.randomUUID(); - } - options = options || {}; - const rnds = options.random || (options.rng || rng)(); - rnds[6] = rnds[6] & 15 | 64; - rnds[8] = rnds[8] & 63 | 128; - if (buf) { - offset = offset || 0; - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } - return buf; - } - return unsafeStringify(rnds); -} -var v4_default; -var init_v4 = __esm({ - "node_modules/uuid/dist/esm-node/v4.js"() { - init_native(); - init_rng(); - init_stringify(); - v4_default = v4; - } -}); - -// node_modules/uuid/dist/esm-node/sha1.js -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === "string") { - bytes = Buffer.from(bytes, "utf8"); - } - return import_crypto4.default.createHash("sha1").update(bytes).digest(); -} -var import_crypto4, sha1_default; -var init_sha1 = __esm({ - "node_modules/uuid/dist/esm-node/sha1.js"() { - import_crypto4 = __toESM(require("crypto")); - sha1_default = sha1; - } -}); - -// node_modules/uuid/dist/esm-node/v5.js -var v5, v5_default; -var init_v5 = __esm({ - "node_modules/uuid/dist/esm-node/v5.js"() { - init_v35(); - init_sha1(); - v5 = v35("v5", 80, sha1_default); - v5_default = v5; - } -}); - -// node_modules/uuid/dist/esm-node/nil.js -var nil_default; -var init_nil = __esm({ - "node_modules/uuid/dist/esm-node/nil.js"() { - nil_default = "00000000-0000-0000-0000-000000000000"; - } -}); - -// node_modules/uuid/dist/esm-node/version.js -function version(uuid) { - if (!validate_default(uuid)) { - throw TypeError("Invalid UUID"); - } - return parseInt(uuid.slice(14, 15), 16); -} -var version_default; -var init_version = __esm({ - "node_modules/uuid/dist/esm-node/version.js"() { - init_validate(); - version_default = version; - } -}); - -// node_modules/uuid/dist/esm-node/index.js -var esm_node_exports = {}; -__export(esm_node_exports, { - NIL: () => nil_default, - parse: () => parse_default, - stringify: () => stringify_default, - v1: () => v1_default, - v3: () => v3_default, - v4: () => v4_default, - v5: () => v5_default, - validate: () => validate_default, - version: () => version_default -}); -var init_esm_node = __esm({ - "node_modules/uuid/dist/esm-node/index.js"() { - init_v1(); - init_v3(); - init_v4(); - init_v5(); - init_nil(); - init_version(); - init_validate(); - init_stringify(); - init_parse(); - } -}); - -// node_modules/@vscode/wasm-component-model/lib/common/componentModel.js -var require_componentModel = __commonJS({ - "node_modules/@vscode/wasm-component-model/lib/common/componentModel.js"(exports2) { - "use strict"; - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = exports2 && exports2.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result2 = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result2, mod, k); - } - __setModuleDefault(result2, mod); - return result2; - }; - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.OptionType = exports2.option = exports2.EnumType = exports2.VariantType = exports2.FlagsType = exports2.TupleType = exports2.RecordType = exports2.Float64ArrayType = exports2.Float32ArrayType = exports2.BigUint64ArrayType = exports2.Uint32ArrayType = exports2.Uint16ArrayType = exports2.Uint8ArrayType = exports2.BigInt64ArrayType = exports2.Int32ArrayType = exports2.Int16ArrayType = exports2.Int8ArrayType = exports2.ListType = exports2.wstring = exports2.wchar = exports2.ptr = exports2.size = exports2.byte = exports2.float64 = exports2.float32 = exports2.s64 = exports2.s32 = exports2.s16 = exports2.s8 = exports2.u64 = exports2.u32 = exports2.u16 = exports2.u8 = exports2.bool = exports2.ComponentModelTypeKind = exports2.FlatTuple = exports2.f64 = exports2.f32 = exports2.i64 = exports2.i32 = exports2.FlatTypeKind = exports2.Memory = exports2.MemoryRange = exports2.ReadonlyMemoryRange = exports2.BaseMemoryRange = exports2.MemoryError = exports2.Alignment = exports2.ResourceManagers = exports2.ResourceManager = exports2.ComponentModelTrap = void 0; - exports2.Exports = exports2.Module = exports2.Imports = exports2.Resource = exports2.WasmContext = exports2.PackageType = exports2.InterfaceType = exports2.ComponentModelTypeVisitor = exports2.OwnType = exports2.BorrowType = exports2.ResourceType = exports2.ResourceHandleType = exports2.MethodType = exports2.StaticMethodType = exports2.DestructorType = exports2.ConstructorType = exports2.FunctionType = exports2.ResultType = exports2.result = void 0; - var ral_1 = __importDefault(require_ral()); - var uuid = __importStar((init_esm_node(), __toCommonJS(esm_node_exports))); - var isLittleEndian = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; - if (!isLittleEndian) { - throw new Error("Big endian platforms are currently not supported."); - } - var ComponentModelTrap = class extends Error { - constructor(message) { - super(message); - } - }; - exports2.ComponentModelTrap = ComponentModelTrap; - var ResourceManager; - (function(ResourceManager2) { - function from(obj) { - while (obj !== void 0) { - const self = obj; - if (typeof self.$drop === "function" && typeof self.$handle === "function" && typeof self.$resource === "function") { - return self; - } - obj = obj.$manager; - } - return void 0; - } - ResourceManager2.from = from; - class Default { - constructor() { - __publicField(this, "h2r"); - __publicField(this, "handleCounter"); - this.h2r = /* @__PURE__ */ new Map(); - this.handleCounter = 1; - } - $handle(value) { - if (value.$handle !== void 0) { - return value.$handle; - } - const handle = this.handleCounter++; - this.h2r.set(handle, value); - value.$handle = handle; - return handle; - } - $resource(resource) { - const value = this.h2r.get(resource); - if (value === void 0) { - throw new ComponentModelTrap(`Unknown resource handle ${resource}`); - } - return value; - } - $drop(resource) { - this.h2r.delete(resource); - } - } - ResourceManager2.Default = Default; - })(ResourceManager || (exports2.ResourceManager = ResourceManager = {})); - var ResourceManagers; - (function(ResourceManagers2) { - class Default { - constructor() { - __publicField(this, "managers"); - this.managers = /* @__PURE__ */ new Map(); - } - has(id) { - return this.managers.has(id); - } - set(id, manager) { - if (this.managers.has(id)) { - throw new ComponentModelTrap(`Resource manager ${id} already registered.`); - } - this.managers.set(id, manager); - } - get(id) { - const manager = this.managers.get(id); - if (manager === void 0) { - throw new ComponentModelTrap(`Resource manager ${id} not found.`); - } - return manager; - } - } - ResourceManagers2.Default = Default; - })(ResourceManagers || (exports2.ResourceManagers = ResourceManagers = {})); - var BigInts; - (function(BigInts2) { - const MAX_VALUE_AS_BIGINT = BigInt(Number.MAX_VALUE); - function asNumber(value) { - if (value > MAX_VALUE_AS_BIGINT) { - throw new ComponentModelTrap("Value too big for number"); - } - return Number(value); - } - BigInts2.asNumber = asNumber; - function max(...args) { - return args.reduce((m, e) => e > m ? e : m); - } - BigInts2.max = max; - function min(...args) { - return args.reduce((m, e) => e < m ? e : m); - } - BigInts2.min = min; - })(BigInts || (BigInts = {})); - var utf8Decoder = (0, ral_1.default)().TextDecoder.create("utf-8"); - var utf8Encoder = (0, ral_1.default)().TextEncoder.create("utf-8"); - var Alignment; - (function(Alignment2) { - Alignment2[Alignment2["byte"] = 1] = "byte"; - Alignment2[Alignment2["halfWord"] = 2] = "halfWord"; - Alignment2[Alignment2["word"] = 4] = "word"; - Alignment2[Alignment2["doubleWord"] = 8] = "doubleWord"; - })(Alignment || (exports2.Alignment = Alignment = {})); - (function(Alignment2) { - function align2(ptr, alignment) { - return Math.ceil(ptr / alignment) * alignment; - } - Alignment2.align = align2; - function getAlignment(ptr) { - if (ptr % Alignment2.doubleWord === 0) { - return Alignment2.doubleWord; - } - if (ptr % Alignment2.word === 0) { - return Alignment2.word; - } - if (ptr % Alignment2.halfWord === 0) { - return Alignment2.halfWord; - } - return Alignment2.byte; - } - Alignment2.getAlignment = getAlignment; - })(Alignment || (exports2.Alignment = Alignment = {})); - var align = Alignment.align; - var MemoryError = class extends Error { - constructor(message) { - super(message); - } - }; - exports2.MemoryError = MemoryError; - var BaseMemoryRange = class { - constructor(memory, ptr, size) { - __publicField(this, "_memory"); - __publicField(this, "_ptr"); - __publicField(this, "_size"); - __publicField(this, "_alignment"); - __publicField(this, "_view"); - this._memory = memory; - this._ptr = ptr; - this._size = size; - this._alignment = Alignment.getAlignment(ptr); - } - get memory() { - return this._memory; - } - get ptr() { - return this._ptr; - } - get size() { - return this._size; - } - get alignment() { - return this._alignment; - } - get view() { - if (this._view === void 0 || this._view.buffer !== this._memory.buffer) { - this._view = new DataView(this._memory.buffer, this._ptr, this._size); - } - return this._view; - } - getUint8(offset) { - return this.view.getUint8(offset); - } - getInt8(offset) { - return this.view.getInt8(offset); - } - getUint16(offset) { - this.assertAlignment(offset, Alignment.halfWord); - return this.view.getUint16(offset, true); - } - getInt16(offset) { - this.assertAlignment(offset, Alignment.halfWord); - return this.view.getInt16(offset, true); - } - getUint32(offset) { - this.assertAlignment(offset, Alignment.word); - return this.view.getUint32(offset, true); - } - getInt32(offset) { - this.assertAlignment(offset, Alignment.word); - return this.view.getInt32(offset, true); - } - getUint64(offset) { - this.assertAlignment(offset, Alignment.doubleWord); - return this.view.getBigUint64(offset, true); - } - getInt64(offset) { - this.assertAlignment(offset, Alignment.doubleWord); - return this.view.getBigInt64(offset, true); - } - getFloat32(offset) { - this.assertAlignment(offset, Alignment.word); - return this.view.getFloat32(offset, true); - } - getFloat64(offset) { - this.assertAlignment(offset, Alignment.doubleWord); - return this.view.getFloat64(offset, true); - } - getPtr(offset) { - this.assertAlignment(offset, Alignment.word); - return this.view.getUint32(offset, true); - } - getUint8Array(offset, length) { - return this.getArray(offset, length, Uint8Array); - } - getInt8Array(offset, length) { - return this.getArray(offset, length, Int8Array); - } - getUint16Array(byteOffset, length) { - return this.getArray(byteOffset, length, Uint16Array); - } - getInt16Array(byteOffset, length) { - return this.getArray(byteOffset, length, Int16Array); - } - getUint32Array(byteOffset, length) { - return this.getArray(byteOffset, length, Uint32Array); - } - getInt32Array(byteOffset, length) { - return this.getArray(byteOffset, length, Int32Array); - } - getUint64Array(byteOffset, length) { - return this.getBigArray(byteOffset, length, BigUint64Array); - } - getInt64Array(byteOffset, length) { - return this.getBigArray(byteOffset, length, BigInt64Array); - } - getFloat32Array(byteOffset, length) { - return this.getArray(byteOffset, length, Float32Array); - } - getFloat64Array(byteOffset, length) { - return this.getArray(byteOffset, length, Float64Array); - } - copyBytes(offset, length, into, into_offset) { - if (offset + length > this.size) { - throw new MemoryError(`Memory access is out of bounds. Accessing [${offset}, ${length}], allocated[${this.ptr}, ${this.size}]`); - } - const target = into.getUint8View(into_offset, length); - target.set(new Uint8Array(this._memory.buffer, this.ptr + offset, length)); - } - assertAlignment(offset, alignment) { - if (alignment > this.alignment || offset % alignment !== 0) { - throw new MemoryError(`Memory location is not aligned to ${alignment}. Allocated[${this.ptr},${this.size}]`); - } - } - getArray(byteOffset, length, clazz) { - length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT; - if (!Number.isInteger(length)) { - throw new MemoryError(`Length must be an integer value. Got ${length}.`); - } - const result2 = new clazz(length); - result2.set(new clazz(this._memory.buffer, this.ptr + byteOffset, length)); - return result2; - } - getBigArray(byteOffset, length, clazz) { - length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT; - if (!Number.isInteger(length)) { - throw new MemoryError(`Length must be an integer value. Got ${length}.`); - } - const result2 = new clazz(length); - result2.set(new clazz(this._memory.buffer, this.ptr + byteOffset, length)); - return result2; - } - }; - exports2.BaseMemoryRange = BaseMemoryRange; - var ReadonlyMemoryRange = class _ReadonlyMemoryRange extends BaseMemoryRange { - constructor(memory, ptr, size) { - super(memory, ptr, size); - } - range(offset, size) { - if (offset + size > this.size) { - throw new MemoryError(`Memory access is out of bounds. Accessing [${offset}, ${size}], allocated[${this.ptr}, ${this.size}]`); - } - return new _ReadonlyMemoryRange(this._memory, this.ptr + offset, size); - } - }; - exports2.ReadonlyMemoryRange = ReadonlyMemoryRange; - var MemoryRange = class _MemoryRange extends BaseMemoryRange { - constructor(memory, ptr, size, isPreallocated = false) { - super(memory, ptr, size); - __publicField(this, "isAllocated"); - this.isAllocated = isPreallocated; - } - free() { - if (typeof this._memory.free !== "function") { - throw new MemoryError(`Memory doesn't support free`); - } - this._memory.free(this); - } - range(offset, size) { - if (offset + size > this.size) { - throw new MemoryError(`Memory access is out of bounds. Accessing [${offset}, ${size}], allocated[${this.ptr}, ${this.size}]`); - } - return new _MemoryRange(this._memory, this.ptr + offset, size); - } - setUint8(offset, value) { - this.view.setUint8(offset, value); - } - setInt8(offset, value) { - this.view.setInt8(offset, value); - } - setUint16(offset, value) { - this.assertAlignment(offset, Alignment.halfWord); - this.view.setUint16(offset, value, true); - } - setInt16(offset, value) { - this.assertAlignment(offset, Alignment.halfWord); - this.view.setInt16(offset, value, true); - } - setUint32(offset, value) { - this.assertAlignment(offset, Alignment.word); - this.view.setUint32(offset, value, true); - } - setInt32(offset, value) { - this.assertAlignment(offset, Alignment.word); - this.view.setInt32(offset, value, true); - } - setUint64(offset, value) { - this.assertAlignment(offset, Alignment.doubleWord); - this.view.setBigUint64(offset, value, true); - } - setInt64(offset, value) { - this.assertAlignment(offset, Alignment.doubleWord); - this.view.setBigInt64(offset, value, true); - } - setFloat32(offset, value) { - this.assertAlignment(offset, Alignment.word); - this.view.setFloat32(offset, value, true); - } - setFloat64(offset, value) { - this.assertAlignment(offset, Alignment.doubleWord); - this.view.setFloat64(offset, value, true); - } - setPtr(offset, value) { - this.assertAlignment(offset, Alignment.word); - this.view.setUint32(offset, value, true); - } - getUint8View(offset, length) { - return this.getArrayView(offset, length, Uint8Array); - } - getInt8View(offset, length) { - return this.getArrayView(offset, length, Int8Array); - } - getUint16View(offset, length) { - return this.getArrayView(offset, length, Uint16Array); - } - getInt16View(offset, length) { - return this.getArrayView(offset, length, Int16Array); - } - getUint32View(offset, length) { - return this.getArrayView(offset, length, Uint32Array); - } - getInt32View(offset, length) { - return this.getArrayView(offset, length, Int32Array); - } - getUint64View(offset, length) { - return this.getBigArrayView(offset, length, BigUint64Array); - } - getInt64View(offset, length) { - return this.getBigArrayView(offset, length, BigInt64Array); - } - getFloat32View(offset, length) { - return this.getArrayView(offset, length, Float32Array); - } - getFloat64View(offset, length) { - return this.getArrayView(offset, length, Float64Array); - } - setUint8Array(offset, bytes) { - this.setArray(offset, bytes, Uint8Array); - } - setInt8Array(offset, bytes) { - this.setArray(offset, bytes, Int8Array); - } - setUint16Array(offset, bytes) { - this.setArray(offset, bytes, Uint16Array); - } - setInt16Array(offset, bytes) { - this.setArray(offset, bytes, Int16Array); - } - setUint32Array(offset, bytes) { - this.setArray(offset, bytes, Uint32Array); - } - setInt32Array(offset, bytes) { - this.setArray(offset, bytes, Int32Array); - } - setUint64Array(offset, bytes) { - this.setBigArray(offset, bytes, BigUint64Array); - } - setInt64Array(offset, bytes) { - this.setBigArray(offset, bytes, BigInt64Array); - } - setFloat32Array(offset, bytes) { - this.setArray(offset, bytes, Float32Array); - } - setFloat64Array(offset, bytes) { - this.setArray(offset, bytes, Float64Array); - } - getArrayView(byteOffset, length, clazz) { - length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT; - if (!Number.isInteger(length)) { - throw new MemoryError(`Length must be an integer value. Got ${length}.`); - } - return new clazz(this._memory.buffer, this.ptr + byteOffset, length); - } - getBigArrayView(byteOffset, length, clazz) { - length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT; - if (!Number.isInteger(length)) { - throw new MemoryError(`Length must be an integer value. Got ${length}.`); - } - return new clazz(this._memory.buffer, this.ptr + byteOffset, length); - } - setArray(byteOffset, bytes, clazz) { - new clazz(this._memory.buffer, this.ptr + byteOffset, bytes.length).set(bytes); - } - setBigArray(byteOffset, bytes, clazz) { - new clazz(this._memory.buffer, this.ptr + byteOffset, bytes.length).set(bytes); - } - }; - exports2.MemoryRange = MemoryRange; - var NullMemory = class { - constructor() { - __publicField(this, "id", "b60336d2-c856-4767-af3b-f66e1ab6c507"); - __publicField(this, "buffer", new ArrayBuffer(0)); - } - alloc() { - throw new MemoryError("Cannot allocate memory on a null memory."); - } - realloc() { - throw new MemoryError("Cannot re-allocate memory on a null memory."); - } - preAllocated() { - throw new MemoryError("Cannot point to pre-allocate memory on a null memory."); - } - readonly() { - throw new MemoryError("Cannot point to readonly memory on a null memory."); - } - free() { - throw new MemoryError("Cannot free memory on a null memory."); - } - }; - var Memory2; - (function(Memory3) { - Memory3.Null = new NullMemory(); - class Default { - constructor(exports3, id) { - __publicField(this, "id"); - __publicField(this, "memory"); - __publicField(this, "cabi_realloc"); - if (exports3.memory === void 0 || exports3.cabi_realloc === void 0) { - throw new MemoryError("The exports object must contain a memory object and a cabi_realloc function."); - } - this.id = id ?? uuid.v4(); - this.memory = exports3.memory; - this.cabi_realloc = exports3.cabi_realloc; - } - get buffer() { - return this.memory.buffer; - } - alloc(align2, size) { - const ptr = this.cabi_realloc(0, 0, align2, size); - return new MemoryRange(this, ptr, size); - } - realloc(range, newSize) { - const ptr = this.cabi_realloc(range.ptr, range.size, range.alignment, newSize); - return new MemoryRange(this, ptr, newSize); - } - preAllocated(ptr, size) { - return new MemoryRange(this, ptr, size); - } - readonly(ptr, size) { - return new ReadonlyMemoryRange(this, ptr, size); - } - } - Memory3.Default = Default; - })(Memory2 || (exports2.Memory = Memory2 = {})); - var FlatTypeKind; - (function(FlatTypeKind2) { - FlatTypeKind2["i32"] = "i32"; - FlatTypeKind2["i64"] = "i64"; - FlatTypeKind2["f32"] = "f32"; - FlatTypeKind2["f64"] = "f64"; - })(FlatTypeKind || (exports2.FlatTypeKind = FlatTypeKind = {})); - var $i32; - (function($i322) { - $i322.kind = FlatTypeKind.i32; - $i322.size = 4; - $i322.alignment = Alignment.word; - function load(memory, offset) { - return memory.getUint32(offset); - } - $i322.load = load; - function store(memory, offset, value) { - memory.setUint32(offset, value); - } - $i322.store = store; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $i322.alignment); - src.assertAlignment(src_offset, $i322.alignment); - src.copyBytes(src_offset, $i322.size, dest, dest_offset); - } - $i322.copy = copy; - })($i32 || ($i32 = {})); - exports2.i32 = $i32; - var $i64; - (function($i642) { - $i642.kind = FlatTypeKind.i64; - $i642.size = 8; - $i642.alignment = Alignment.doubleWord; - function load(memory, offset) { - return memory.getUint64(offset); - } - $i642.load = load; - function store(memory, offset, value) { - memory.setUint64(offset, value); - } - $i642.store = store; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $i642.alignment); - src.assertAlignment(src_offset, $i642.alignment); - src.copyBytes(src_offset, $i642.size, dest, dest_offset); - } - $i642.copy = copy; - })($i64 || ($i64 = {})); - exports2.i64 = $i64; - var $f32; - (function($f322) { - $f322.kind = FlatTypeKind.f32; - $f322.size = 4; - $f322.alignment = Alignment.word; - function load(memory, offset) { - return memory.getFloat32(offset); - } - $f322.load = load; - function store(memory, offset, value) { - memory.setFloat32(offset, value); - } - $f322.store = store; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $f322.alignment); - src.assertAlignment(src_offset, $f322.alignment); - src.copyBytes(src_offset, $f322.size, dest, dest_offset); - } - $f322.copy = copy; - })($f32 || ($f32 = {})); - exports2.f32 = $f32; - var $f64; - (function($f642) { - $f642.kind = FlatTypeKind.f64; - $f642.size = 8; - $f642.alignment = Alignment.doubleWord; - function load(memory, offset) { - return memory.getFloat64(offset); - } - $f642.load = load; - function store(memory, offset, value) { - memory.setFloat64(offset, value); - } - $f642.store = store; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $f642.alignment); - src.assertAlignment(src_offset, $f642.alignment); - src.copyBytes(src_offset, $f642.size, dest, dest_offset); - } - $f642.copy = copy; - })($f64 || ($f64 = {})); - exports2.f64 = $f64; - var FlatTuple = class _FlatTuple { - constructor(types) { - __publicField(this, "types"); - __publicField(this, "alignment"); - __publicField(this, "size"); - this.types = types; - this.alignment = _FlatTuple.alignment(types); - this.size = _FlatTuple.size(types, this.alignment); - } - load(memory, offset) { - memory.assertAlignment(offset, this.alignment); - const result2 = []; - for (const type of this.types) { - offset = align(offset, type.alignment); - result2.push(type.load(memory, offset)); - offset += type.size; - } - return result2; - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memory, offset, values) { - memory.assertAlignment(offset, this.alignment); - for (const [index, type] of this.types.entries()) { - const value = values[index]; - offset = align(offset, type.alignment); - type.store(memory, offset, value); - offset += type.size; - } - } - copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, this.alignment); - src.assertAlignment(src_offset, this.alignment); - src.copyBytes(src_offset, this.size, dest, dest_offset); - } - static alignment(types) { - let result2 = Alignment.byte; - for (const type of types) { - result2 = Math.max(result2, type.alignment); - } - return result2; - } - static size(types, tupleAlignment) { - let result2 = 0; - for (const type of types) { - result2 = align(result2, type.alignment); - result2 += type.size; - } - return align(result2, tupleAlignment); - } - }; - exports2.FlatTuple = FlatTuple; - var WasmTypes; - (function(WasmTypes2) { - const $32 = new DataView(new ArrayBuffer(4)); - const $64 = new DataView(new ArrayBuffer(8)); - function reinterpret_i32_as_f32(i32) { - $32.setInt32(0, i32, true); - return $32.getFloat32(0, true); - } - WasmTypes2.reinterpret_i32_as_f32 = reinterpret_i32_as_f32; - function reinterpret_f32_as_i32(f32) { - $32.setFloat32(0, f32, true); - return $32.getInt32(0, true); - } - WasmTypes2.reinterpret_f32_as_i32 = reinterpret_f32_as_i32; - function convert_i64_to_i32(i64) { - return BigInts.asNumber(i64); - } - WasmTypes2.convert_i64_to_i32 = convert_i64_to_i32; - function convert_i32_to_i64(i32) { - return BigInt(i32); - } - WasmTypes2.convert_i32_to_i64 = convert_i32_to_i64; - function reinterpret_i64_as_f32(i64) { - const i32 = convert_i64_to_i32(i64); - return reinterpret_i32_as_f32(i32); - } - WasmTypes2.reinterpret_i64_as_f32 = reinterpret_i64_as_f32; - function reinterpret_f32_as_i64(f32) { - const i32 = reinterpret_f32_as_i32(f32); - return convert_i32_to_i64(i32); - } - WasmTypes2.reinterpret_f32_as_i64 = reinterpret_f32_as_i64; - function reinterpret_i64_as_f64(i64) { - $64.setBigInt64(0, i64, true); - return $64.getFloat64(0, true); - } - WasmTypes2.reinterpret_i64_as_f64 = reinterpret_i64_as_f64; - function reinterpret_f64_as_i64(f64) { - $64.setFloat64(0, f64, true); - return $64.getBigInt64(0, true); - } - WasmTypes2.reinterpret_f64_as_i64 = reinterpret_f64_as_i64; - })(WasmTypes || (WasmTypes = {})); - var CoerceValueIter = class { - constructor(values, haveFlatTypes, wantFlatTypes) { - __publicField(this, "values"); - __publicField(this, "haveFlatTypes"); - __publicField(this, "wantFlatTypes"); - __publicField(this, "index"); - this.values = values; - this.haveFlatTypes = haveFlatTypes; - this.wantFlatTypes = wantFlatTypes; - if (haveFlatTypes.length < wantFlatTypes.length) { - throw new ComponentModelTrap(`Invalid coercion: have ${haveFlatTypes.length} values, want ${wantFlatTypes.length} values`); - } - this.index = 0; - } - next() { - const value = this.values.next(); - if (value.done) { - return value; - } - const haveType = this.haveFlatTypes[this.index]; - const wantType = this.wantFlatTypes[this.index++]; - if (haveType === $i32 && wantType === $f32) { - return { done: false, value: WasmTypes.reinterpret_i32_as_f32(value.value) }; - } else if (haveType === $i64 && wantType === $i32) { - return { done: false, value: WasmTypes.convert_i64_to_i32(value.value) }; - } else if (haveType === $i64 && wantType === $f32) { - return { done: false, value: WasmTypes.reinterpret_i64_as_f32(value.value) }; - } else if (haveType === $i64 && wantType === $f64) { - return { done: false, value: WasmTypes.reinterpret_i64_as_f64(value.value) }; - } else { - return value; - } - } - }; - var ComponentModelTypeKind; - (function(ComponentModelTypeKind2) { - ComponentModelTypeKind2["bool"] = "bool"; - ComponentModelTypeKind2["u8"] = "u8"; - ComponentModelTypeKind2["u16"] = "u16"; - ComponentModelTypeKind2["u32"] = "u32"; - ComponentModelTypeKind2["u64"] = "u64"; - ComponentModelTypeKind2["s8"] = "s8"; - ComponentModelTypeKind2["s16"] = "s16"; - ComponentModelTypeKind2["s32"] = "s32"; - ComponentModelTypeKind2["s64"] = "s64"; - ComponentModelTypeKind2["float32"] = "float32"; - ComponentModelTypeKind2["float64"] = "float64"; - ComponentModelTypeKind2["char"] = "char"; - ComponentModelTypeKind2["string"] = "string"; - ComponentModelTypeKind2["list"] = "list"; - ComponentModelTypeKind2["record"] = "record"; - ComponentModelTypeKind2["tuple"] = "tuple"; - ComponentModelTypeKind2["variant"] = "variant"; - ComponentModelTypeKind2["enum"] = "enum"; - ComponentModelTypeKind2["flags"] = "flags"; - ComponentModelTypeKind2["option"] = "option"; - ComponentModelTypeKind2["result"] = "result"; - ComponentModelTypeKind2["resource"] = "resource"; - ComponentModelTypeKind2["resourceHandle"] = "resourceHandle"; - ComponentModelTypeKind2["borrow"] = "borrow"; - ComponentModelTypeKind2["own"] = "own"; - })(ComponentModelTypeKind || (exports2.ComponentModelTypeKind = ComponentModelTypeKind = {})); - exports2.bool = { - kind: ComponentModelTypeKind.bool, - size: 1, - alignment: 1, - flatTypes: [$i32], - load(memory, offset) { - return memory.getUint8(offset) !== 0; - }, - liftFlat(_memory, values) { - const value = values.next().value; - if (value < 0) { - throw new Error(`Invalid bool value ${value}`); - } - return value !== 0; - }, - alloc(memory) { - return memory.alloc(exports2.bool.alignment, exports2.bool.size); - }, - store(memory, offset, value) { - memory.setUint8(offset, value ? 1 : 0); - }, - lowerFlat(result2, _memory, value) { - result2.push(value ? 1 : 0); - }, - copy(dest, dest_offset, src, src_offset) { - src.copyBytes(src_offset, exports2.bool.size, dest, dest_offset); - } - }; - var $u8; - (function($u82) { - $u82.kind = ComponentModelTypeKind.u8; - $u82.size = 1; - $u82.alignment = Alignment.byte; - $u82.flatTypes = [$i32]; - $u82.LOW_VALUE = 0; - $u82.HIGH_VALUE = 255; - function load(memory, offset) { - return memory.getUint8(offset); - } - $u82.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u82.LOW_VALUE || value > $u82.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u8 value ${value}`); - } - return value; - } - $u82.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($u82.alignment, $u82.size); - } - $u82.alloc = alloc; - function store(memory, offset, value) { - memory.setUint8(offset, value); - } - $u82.store = store; - function lowerFlat(result2, _memory, value) { - if (value < $u82.LOW_VALUE || value > $u82.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u8 value ${value}`); - } - result2.push(value); - } - $u82.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - src.copyBytes(src_offset, $u82.size, dest, dest_offset); - } - $u82.copy = copy; - })($u8 || ($u8 = {})); - exports2.u8 = $u8; - var $u16; - (function($u162) { - $u162.kind = ComponentModelTypeKind.u16; - $u162.size = 2; - $u162.alignment = Alignment.halfWord; - $u162.flatTypes = [$i32]; - $u162.LOW_VALUE = 0; - $u162.HIGH_VALUE = 65535; - function load(memory, offset) { - return memory.getUint16(offset); - } - $u162.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u162.LOW_VALUE || value > $u162.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u16 value ${value}`); - } - return value; - } - $u162.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($u162.alignment, $u162.size); - } - $u162.alloc = alloc; - function store(memory, offset, value) { - memory.setUint16(offset, value); - } - $u162.store = store; - function lowerFlat(result2, _memory, value) { - if (value < $u162.LOW_VALUE || value > $u162.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u16 value ${value}`); - } - result2.push(value); - } - $u162.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $u162.alignment); - src.assertAlignment(src_offset, $u162.alignment); - src.copyBytes(src_offset, $u162.size, dest, dest_offset); - } - $u162.copy = copy; - })($u16 || ($u16 = {})); - exports2.u16 = $u16; - var $u32; - (function($u322) { - $u322.kind = ComponentModelTypeKind.u32; - $u322.size = 4; - $u322.alignment = Alignment.word; - $u322.flatTypes = [$i32]; - $u322.LOW_VALUE = 0; - $u322.HIGH_VALUE = 4294967295; - function valid(value) { - return value >= $u322.LOW_VALUE && value <= $u322.HIGH_VALUE && Number.isInteger(value); - } - $u322.valid = valid; - function load(memory, offset) { - return memory.getUint32(offset); - } - $u322.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u322.LOW_VALUE || value > $u322.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u32 value ${value}`); - } - return value; - } - $u322.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($u322.alignment, $u322.size); - } - $u322.alloc = alloc; - function store(memory, offset, value) { - memory.setUint32(offset, value); - } - $u322.store = store; - function lowerFlat(result2, _memory, value) { - if (value < $u322.LOW_VALUE || value > $u322.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u32 value ${value}`); - } - result2.push(value); - } - $u322.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $u322.alignment); - src.assertAlignment(src_offset, $u322.alignment); - src.copyBytes(src_offset, $u322.size, dest, dest_offset); - } - $u322.copy = copy; - })($u32 || ($u32 = {})); - exports2.u32 = $u32; - var $u64; - (function($u642) { - $u642.kind = ComponentModelTypeKind.u64; - $u642.size = 8; - $u642.alignment = Alignment.doubleWord; - $u642.flatTypes = [$i64]; - $u642.LOW_VALUE = 0n; - $u642.HIGH_VALUE = 18446744073709551615n; - function load(memory, offset) { - return memory.getUint64(offset); - } - $u642.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u642.LOW_VALUE) { - throw new Error(`Invalid u64 value ${value}`); - } - return value; - } - $u642.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($u642.alignment, $u642.size); - } - $u642.alloc = alloc; - function store(memory, offset, value) { - memory.setUint64(offset, value); - } - $u642.store = store; - function lowerFlat(result2, _memory, value) { - if (value < $u642.LOW_VALUE) { - throw new Error(`Invalid u64 value ${value}`); - } - result2.push(value); - } - $u642.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $u642.alignment); - src.assertAlignment(src_offset, $u642.alignment); - src.copyBytes(src_offset, $u642.size, dest, dest_offset); - } - $u642.copy = copy; - })($u64 || ($u64 = {})); - exports2.u64 = $u64; - var $s8; - (function($s82) { - $s82.kind = ComponentModelTypeKind.s8; - $s82.size = 1; - $s82.alignment = Alignment.byte; - $s82.flatTypes = [$i32]; - const LOW_VALUE = -128; - const HIGH_VALUE = 127; - function load(memory, offset) { - return memory.getInt8(offset); - } - $s82.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u8.LOW_VALUE || value > $u8.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u8 value ${value}`); - } - if (value <= HIGH_VALUE) { - return value; - } else { - return value - 256; - } - } - $s82.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($s82.alignment, $s82.size); - } - $s82.alloc = alloc; - function store(memory, offset, value) { - memory.setInt8(offset, value); - } - $s82.store = store; - function lowerFlat(result2, _memory, value) { - if (value < LOW_VALUE || value > HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid s8 value ${value}`); - } - result2.push(value < 0 ? value + 256 : value); - } - $s82.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $s82.alignment); - src.assertAlignment(src_offset, $s82.alignment); - src.copyBytes(src_offset, $s82.size, dest, dest_offset); - } - $s82.copy = copy; - })($s8 || ($s8 = {})); - exports2.s8 = $s8; - var $s16; - (function($s162) { - $s162.kind = ComponentModelTypeKind.s16; - $s162.size = 2; - $s162.alignment = Alignment.halfWord; - $s162.flatTypes = [$i32]; - const LOW_VALUE = -32768; - const HIGH_VALUE = 32767; - function load(memory, offset) { - return memory.getInt16(offset); - } - $s162.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u16.LOW_VALUE || value > $u16.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid s16 value ${value}`); - } - return value <= HIGH_VALUE ? value : value - 65536; - } - $s162.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($s162.alignment, $s162.size); - } - $s162.alloc = alloc; - function store(memory, offset, value) { - memory.setInt16(offset, value); - } - $s162.store = store; - function lowerFlat(result2, _memory, value) { - if (value < LOW_VALUE || value > HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid s16 value ${value}`); - } - result2.push(value < 0 ? value + 65536 : value); - } - $s162.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $s162.alignment); - src.assertAlignment(src_offset, $s162.alignment); - src.copyBytes(src_offset, $s162.size, dest, dest_offset); - } - $s162.copy = copy; - })($s16 || ($s16 = {})); - exports2.s16 = $s16; - var $s32; - (function($s322) { - $s322.kind = ComponentModelTypeKind.s32; - $s322.size = 4; - $s322.alignment = Alignment.word; - $s322.flatTypes = [$i32]; - const LOW_VALUE = -2147483648; - const HIGH_VALUE = 2147483647; - function load(memory, offset) { - return memory.getInt32(offset); - } - $s322.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u32.LOW_VALUE || value > $u32.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid s32 value ${value}`); - } - return value <= HIGH_VALUE ? value : value - 4294967296; - } - $s322.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($s322.alignment, $s322.size); - } - $s322.alloc = alloc; - function store(memory, offset, value) { - memory.setInt32(offset, value); - } - $s322.store = store; - function lowerFlat(result2, _memory, value) { - if (value < LOW_VALUE || value > HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid s32 value ${value}`); - } - result2.push(value < 0 ? value + 4294967296 : value); - } - $s322.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $s322.alignment); - src.assertAlignment(src_offset, $s322.alignment); - src.copyBytes(src_offset, $s322.size, dest, dest_offset); - } - $s322.copy = copy; - })($s32 || ($s32 = {})); - exports2.s32 = $s32; - var $s64; - (function($s642) { - $s642.kind = ComponentModelTypeKind.s64; - $s642.size = 8; - $s642.alignment = Alignment.doubleWord; - $s642.flatTypes = [$i64]; - const LOW_VALUE = -9223372036854775808n; - const HIGH_VALUE = 9223372036854775807n; - function load(memory, offset) { - return memory.getInt64(offset); - } - $s642.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u64.LOW_VALUE) { - throw new Error(`Invalid s64 value ${value}`); - } - return value <= HIGH_VALUE ? value : value - 18446744073709551616n; - } - $s642.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($s642.alignment, $s642.size); - } - $s642.alloc = alloc; - function store(memory, offset, value) { - memory.setInt64(offset, value); - } - $s642.store = store; - function lowerFlat(result2, _memory, value) { - if (value < LOW_VALUE || value > HIGH_VALUE) { - throw new Error(`Invalid s64 value ${value}`); - } - result2.push(value < 0 ? value + 18446744073709551616n : value); - } - $s642.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $s642.alignment); - src.assertAlignment(src_offset, $s642.alignment); - src.copyBytes(src_offset, $s642.size, dest, dest_offset); - } - $s642.copy = copy; - })($s64 || ($s64 = {})); - exports2.s64 = $s64; - var $float32; - (function($float322) { - $float322.kind = ComponentModelTypeKind.float32; - $float322.size = 4; - $float322.alignment = Alignment.word; - $float322.flatTypes = [$f32]; - const LOW_VALUE = -34028234663852886e22; - const HIGH_VALUE = 34028234663852886e22; - const NAN = 2143289344; - function load(memory, offset) { - return memory.getFloat32(offset); - } - $float322.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < LOW_VALUE || value > HIGH_VALUE) { - throw new Error(`Invalid float32 value ${value}`); - } - return value === NAN ? Number.NaN : value; - } - $float322.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($float322.alignment, $float322.size); - } - $float322.alloc = alloc; - function store(memory, offset, value) { - memory.setFloat32(offset, value); - } - $float322.store = store; - function lowerFlat(result2, _memory, value) { - if (value < LOW_VALUE || value > HIGH_VALUE) { - throw new Error(`Invalid float32 value ${value}`); - } - result2.push(Number.isNaN(value) ? NAN : value); - } - $float322.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $float322.alignment); - src.assertAlignment(src_offset, $float322.alignment); - src.copyBytes(src_offset, $float322.size, dest, dest_offset); - } - $float322.copy = copy; - })($float32 || ($float32 = {})); - exports2.float32 = $float32; - var $float64; - (function($float642) { - $float642.kind = ComponentModelTypeKind.float64; - $float642.size = 8; - $float642.alignment = Alignment.doubleWord; - $float642.flatTypes = [$f64]; - const LOW_VALUE = -1 * Number.MAX_VALUE; - const HIGH_VALUE = Number.MAX_VALUE; - const NAN = 9221120237041091e3; - function load(memory, offset) { - return memory.getFloat64(offset); - } - $float642.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < LOW_VALUE || value > HIGH_VALUE) { - throw new Error(`Invalid float64 value ${value}`); - } - return value === NAN ? Number.NaN : value; - } - $float642.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($float642.alignment, $float642.size); - } - $float642.alloc = alloc; - function store(memory, offset, value) { - memory.setFloat64(offset, value); - } - $float642.store = store; - function lowerFlat(result2, _memory, value) { - if (value < LOW_VALUE || value > HIGH_VALUE) { - throw new Error(`Invalid float64 value ${value}`); - } - result2.push(Number.isNaN(value) ? NAN : value); - } - $float642.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $float642.alignment); - src.assertAlignment(src_offset, $float642.alignment); - src.copyBytes(src_offset, $float642.size, dest, dest_offset); - } - $float642.copy = copy; - })($float64 || ($float64 = {})); - exports2.float64 = $float64; - exports2.byte = { - kind: exports2.u8.kind, - size: exports2.u8.size, - alignment: exports2.u8.alignment, - flatTypes: exports2.u8.flatTypes, - load: exports2.u8.load, - liftFlat: exports2.u8.liftFlat, - alloc: exports2.u8.alloc, - store: exports2.u8.store, - lowerFlat: exports2.u8.lowerFlat, - copy: exports2.u8.copy - }; - exports2.size = { - kind: exports2.u32.kind, - size: exports2.u32.size, - alignment: exports2.u32.alignment, - flatTypes: exports2.u32.flatTypes, - load: exports2.u32.load, - liftFlat: exports2.u32.liftFlat, - alloc: exports2.u32.alloc, - store: exports2.u32.store, - lowerFlat: exports2.u32.lowerFlat, - copy: exports2.u32.copy - }; - exports2.ptr = { - kind: exports2.u32.kind, - size: exports2.u32.size, - alignment: exports2.u32.alignment, - flatTypes: exports2.u32.flatTypes, - load: exports2.u32.load, - liftFlat: exports2.u32.liftFlat, - alloc: exports2.u32.alloc, - store: exports2.u32.store, - lowerFlat: exports2.u32.lowerFlat, - copy: exports2.u32.copy - }; - var $wchar; - (function($wchar2) { - $wchar2.kind = ComponentModelTypeKind.char; - $wchar2.size = 4; - $wchar2.alignment = Alignment.word; - $wchar2.flatTypes = [$i32]; - function load(memory, offset, context) { - return fromCodePoint(exports2.u32.load(memory, offset, context)); - } - $wchar2.load = load; - function liftFlat(memory, values, context) { - return fromCodePoint(exports2.u32.liftFlat(memory, values, context)); - } - $wchar2.liftFlat = liftFlat; - function alloc(memory) { - return exports2.u32.alloc(memory); - } - $wchar2.alloc = alloc; - function store(memory, offset, value, context) { - exports2.u32.store(memory, offset, asCodePoint(value), context); - } - $wchar2.store = store; - function lowerFlat(result2, memory, value, context) { - exports2.u32.lowerFlat(result2, memory, asCodePoint(value), context); - } - $wchar2.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $wchar2.alignment); - src.assertAlignment(src_offset, $wchar2.alignment); - src.copyBytes(src_offset, $wchar2.size, dest, dest_offset); - } - $wchar2.copy = copy; - function fromCodePoint(code) { - if (code >= 1114112 || 55296 <= code && code <= 57343) { - throw new ComponentModelTrap("Invalid code point"); - } - return String.fromCodePoint(code); - } - function asCodePoint(str) { - if (str.length !== 1) { - throw new ComponentModelTrap("String length must be 1"); - } - const code = str.codePointAt(0); - if (!(code <= 55295 || 55296 <= code && code <= 1114111)) { - throw new ComponentModelTrap("Invalid code point"); - } - return code; - } - })($wchar || ($wchar = {})); - exports2.wchar = $wchar; - var $wstring; - (function($wstring2) { - const offsets = { - data: 0, - codeUnits: 4 - }; - $wstring2.kind = ComponentModelTypeKind.string; - $wstring2.size = 8; - $wstring2.alignment = Alignment.word; - $wstring2.flatTypes = [$i32, $i32]; - function load(memRange, offset, context) { - const dataPtr = memRange.getUint32(offset + offsets.data); - const codeUnits = memRange.getUint32(offset + offsets.codeUnits); - return loadFromRange(memRange.memory, dataPtr, codeUnits, context.options); - } - $wstring2.load = load; - function liftFlat(memory, values, context) { - const dataPtr = values.next().value; - const codeUnits = values.next().value; - return loadFromRange(memory, dataPtr, codeUnits, context.options); - } - $wstring2.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($wstring2.alignment, $wstring2.size); - } - $wstring2.alloc = alloc; - function store(memory, offset, str, context) { - const [ptr, codeUnits] = storeIntoRange(memory.memory, str, context.options); - memory.setUint32(offset + offsets.data, ptr); - memory.setUint32(offset + offsets.codeUnits, codeUnits); - } - $wstring2.store = store; - function lowerFlat(result2, memory, str, context) { - result2.push(...storeIntoRange(memory, str, context.options)); - } - $wstring2.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset, context) { - dest.assertAlignment(dest_offset, $wstring2.alignment); - src.assertAlignment(src_offset, $wstring2.alignment); - src.copyBytes(src_offset, $wstring2.size, dest, dest_offset); - const data = src.getUint32(src_offset + offsets.data); - const codeUnits = src.getUint32(src_offset + offsets.codeUnits); - const [alignment, byteLength] = getAlignmentAndByteLength(codeUnits, context.options); - const srcReader = src.memory.readonly(data, byteLength); - const destWriter = dest.memory.alloc(alignment, byteLength); - srcReader.copyBytes(0, byteLength, destWriter, 0); - } - $wstring2.copy = copy; - function getAlignmentAndByteLength(codeUnits, options) { - const encoding = options.encoding; - if (encoding === "latin1+utf-16") { - throw new Error("latin1+utf-16 encoding not yet supported"); - } - if (encoding === "utf-8") { - return [exports2.u8.alignment, codeUnits]; - } else if (encoding === "utf-16") { - return [exports2.u16.alignment, codeUnits * 2]; - } else { - throw new Error("Unsupported encoding"); - } - } - $wstring2.getAlignmentAndByteLength = getAlignmentAndByteLength; - function loadFromRange(memory, data, codeUnits, options) { - const encoding = options.encoding; - if (encoding === "latin1+utf-16") { - throw new Error("latin1+utf-16 encoding not yet supported"); - } - if (encoding === "utf-8") { - const byteLength = codeUnits; - const reader = memory.readonly(data, byteLength); - return utf8Decoder.decode(reader.getUint8Array(0, byteLength)); - } else if (encoding === "utf-16") { - const reader = memory.readonly(data, codeUnits * 2); - return String.fromCharCode(...reader.getUint16Array(data, codeUnits)); - } else { - throw new Error("Unsupported encoding"); - } - } - function storeIntoRange(memory, str, options) { - const { encoding } = options; - if (encoding === "latin1+utf-16") { - throw new Error("latin1+utf-16 encoding not yet supported"); - } - if (encoding === "utf-8") { - const data = utf8Encoder.encode(str); - const writer = memory.alloc(exports2.u8.alignment, data.length); - writer.setUint8Array(0, data); - return [writer.ptr, data.length]; - } else if (encoding === "utf-16") { - const writer = memory.alloc(exports2.u16.alignment, str.length * 2); - const data = writer.getUint16View(0); - for (let i = 0; i < str.length; i++) { - data[i] = str.charCodeAt(i); - } - return [writer.ptr, data.length]; - } else { - throw new Error("Unsupported encoding"); - } - } - })($wstring || ($wstring = {})); - exports2.wstring = $wstring; - var _ListType = class _ListType { - constructor(elementType) { - __publicField(this, "elementType"); - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - this.elementType = elementType; - this.kind = ComponentModelTypeKind.list; - this.size = 8; - this.alignment = Alignment.word; - this.flatTypes = [$i32, $i32]; - } - load(memRange, offset, context) { - const offsets = _ListType.offsets; - const dataPtr = memRange.getUint32(offset + offsets.data); - const length = memRange.getUint32(offset + offsets.length); - return this.loadFromRange(memRange.memory.readonly(dataPtr, length * this.elementType.size), length, context); - } - liftFlat(memory, values, context) { - const dataPtr = values.next().value; - const length = values.next().value; - return this.loadFromRange(memory.readonly(dataPtr, length * this.elementType.size), length, context); - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memRange, offset, values, context) { - const elementMemory = memRange.memory.alloc(this.elementType.alignment, this.elementType.size * values.length); - this.storeIntoRange(elementMemory, values, context); - const offsets = _ListType.offsets; - memRange.setUint32(offset + offsets.data, elementMemory.ptr); - memRange.setUint32(offset + offsets.length, values.length); - } - lowerFlat(result2, memory, values, context) { - const elementMemory = memory.alloc(this.elementType.alignment, this.elementType.size * values.length); - this.storeIntoRange(elementMemory, values, context); - result2.push(elementMemory.ptr, values.length); - } - copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, this.alignment); - src.assertAlignment(src_offset, this.alignment); - const offsets = _ListType.offsets; - src.copyBytes(src_offset, this.size, dest, dest_offset); - const data = src.getUint32(src_offset + offsets.data); - const byteLength = src.getUint32(src_offset + offsets.length) * this.elementType.size; - const srcReader = src.memory.readonly(data, byteLength); - const destWriter = dest.memory.alloc(this.elementType.alignment, byteLength); - srcReader.copyBytes(0, byteLength, destWriter, 0); - } - loadFromRange(memory, length, context) { - const result2 = []; - let offset = 0; - for (let i = 0; i < length; i++) { - result2.push(this.elementType.load(memory, offset, context)); - offset += this.elementType.size; - } - return result2; - } - storeIntoRange(memory, values, context) { - let offset = 0; - for (const item of values) { - this.elementType.store(memory, offset, item, context); - offset += this.elementType.size; - } - } - }; - __publicField(_ListType, "offsets", { - data: 0, - length: 4 - }); - var ListType = _ListType; - exports2.ListType = ListType; - var _TypeArrayType = class _TypeArrayType { - constructor(elementType) { - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - __publicField(this, "elementType"); - this.kind = ComponentModelTypeKind.list; - this.size = 8; - this.alignment = 4; - this.flatTypes = [$i32, $i32]; - this.elementType = elementType; - } - load(memRange, offset) { - const offsets = _TypeArrayType.offsets; - const dataPtr = memRange.getUint32(offset + offsets.data); - const length = memRange.getUint32(offset + offsets.length); - return this.loadFromRange(memRange.memory.readonly(dataPtr, length * this.elementType.size), length); - } - liftFlat(memory, values) { - const dataPtr = values.next().value; - const length = values.next().value; - return this.loadFromRange(memory.readonly(dataPtr, length * this.elementType.size), length); - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memRange, offset, value) { - const writer = memRange.memory.alloc(this.elementType.alignment, value.byteLength); - this.storeIntoRange(writer, value); - const offsets = _TypeArrayType.offsets; - memRange.setUint32(offset + offsets.data, writer.ptr); - memRange.setUint32(offset + offsets.length, value.length); - } - lowerFlat(result2, memory, value) { - const writer = memory.alloc(this.elementType.alignment, value.byteLength); - this.storeIntoRange(writer, value); - result2.push(writer.ptr, value.length); - } - copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, this.alignment); - src.assertAlignment(src_offset, this.alignment); - const offsets = _TypeArrayType.offsets; - src.copyBytes(src_offset, this.size, dest, dest_offset); - const data = src.getUint32(src_offset + offsets.data); - const byteLength = src.getUint32(src_offset + offsets.length) * this.elementType.size; - const srcReader = src.memory.readonly(data, byteLength); - const destWriter = dest.memory.alloc(this.elementType.alignment, byteLength); - srcReader.copyBytes(0, byteLength, destWriter, 0); - } - }; - __publicField(_TypeArrayType, "offsets", { - data: 0, - length: 4 - }); - var TypeArrayType = _TypeArrayType; - var Int8ArrayType = class extends TypeArrayType { - constructor() { - super($s8); - } - loadFromRange(memory, length) { - return memory.getInt8Array(0, length); - } - storeIntoRange(memory, value) { - memory.setInt8Array(0, value); - } - }; - exports2.Int8ArrayType = Int8ArrayType; - var Int16ArrayType = class extends TypeArrayType { - constructor() { - super($s16); - } - loadFromRange(memory, length) { - return memory.getInt16Array(0, length); - } - storeIntoRange(memory, value) { - memory.setInt16Array(0, value); - } - }; - exports2.Int16ArrayType = Int16ArrayType; - var Int32ArrayType = class extends TypeArrayType { - constructor() { - super($s32); - } - loadFromRange(memory, length) { - return memory.getInt32Array(0, length); - } - storeIntoRange(memory, value) { - memory.setInt32Array(0, value); - } - }; - exports2.Int32ArrayType = Int32ArrayType; - var BigInt64ArrayType = class extends TypeArrayType { - constructor() { - super($s64); - } - loadFromRange(memory, length) { - return memory.getInt64Array(0, length); - } - storeIntoRange(memory, value) { - memory.setInt64Array(0, value); - } - }; - exports2.BigInt64ArrayType = BigInt64ArrayType; - var Uint8ArrayType = class extends TypeArrayType { - constructor() { - super($u8); - } - loadFromRange(memory, length) { - return memory.getUint8Array(0, length); - } - storeIntoRange(memory, value) { - memory.setUint8Array(0, value); - } - }; - exports2.Uint8ArrayType = Uint8ArrayType; - var Uint16ArrayType = class extends TypeArrayType { - constructor() { - super($u16); - } - loadFromRange(memory, length) { - return memory.getUint16Array(0, length); - } - storeIntoRange(memory, value) { - memory.setUint16Array(0, value); - } - }; - exports2.Uint16ArrayType = Uint16ArrayType; - var Uint32ArrayType = class extends TypeArrayType { - constructor() { - super($u32); - } - loadFromRange(memory, length) { - return memory.getUint32Array(0, length); - } - storeIntoRange(memory, value) { - memory.setUint32Array(0, value); - } - }; - exports2.Uint32ArrayType = Uint32ArrayType; - var BigUint64ArrayType = class extends TypeArrayType { - constructor() { - super($u64); - } - loadFromRange(memory, length) { - return memory.getUint64Array(0, length); - } - storeIntoRange(memory, value) { - memory.setUint64Array(0, value); - } - }; - exports2.BigUint64ArrayType = BigUint64ArrayType; - var Float32ArrayType = class extends TypeArrayType { - constructor() { - super($float32); - } - loadFromRange(memory, length) { - return memory.getFloat32Array(0, length); - } - storeIntoRange(memory, value) { - memory.setFloat32Array(0, value); - } - }; - exports2.Float32ArrayType = Float32ArrayType; - var Float64ArrayType = class extends TypeArrayType { - constructor() { - super($float64); - } - loadFromRange(memory, length) { - return memory.getFloat64Array(0, length); - } - storeIntoRange(memory, value) { - memory.setFloat64Array(0, value); - } - }; - exports2.Float64ArrayType = Float64ArrayType; - var BaseRecordType = class _BaseRecordType { - constructor(fields, kind) { - __publicField(this, "fields"); - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - this.fields = fields; - this.kind = kind; - this.alignment = _BaseRecordType.alignment(fields); - this.size = _BaseRecordType.size(fields, this.alignment); - this.flatTypes = _BaseRecordType.flatTypes(fields); - } - load(memory, offset, context) { - memory.assertAlignment(offset, this.alignment); - const result2 = []; - for (const field of this.fields) { - offset = align(offset, field.type.alignment); - result2.push(field.type.load(memory, offset, context)); - offset += field.type.size; - } - return this.create(this.fields, result2); - } - liftFlat(memory, values, context) { - const result2 = []; - for (const field of this.fields) { - result2.push(field.type.liftFlat(memory, values, context)); - } - return this.create(this.fields, result2); - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memory, offset, record, context) { - memory.assertAlignment(offset, this.alignment); - const values = this.elements(record, this.fields); - for (let i = 0; i < this.fields.length; i++) { - const field = this.fields[i]; - const value = values[i]; - offset = align(offset, field.type.alignment); - field.type.store(memory, offset, value, context); - offset += field.type.size; - } - } - lowerFlat(result2, memory, record, context) { - const values = this.elements(record, this.fields); - for (let i = 0; i < this.fields.length; i++) { - const field = this.fields[i]; - const value = values[i]; - field.type.lowerFlat(result2, memory, value, context); - } - } - copy(dest, dest_offset, src, src_offset, context) { - for (const field of this.fields) { - dest_offset = align(dest_offset, field.type.alignment); - src_offset = align(src_offset, field.type.alignment); - field.type.copy(dest, dest_offset, src, src_offset, context); - dest_offset += field.type.size; - src_offset += field.type.size; - } - } - static size(fields, recordAlignment) { - let result2 = 0; - for (const field of fields) { - result2 = align(result2, field.type.alignment); - result2 += field.type.size; - } - return align(result2, recordAlignment); - } - static alignment(fields) { - let result2 = 1; - for (const field of fields) { - result2 = Math.max(result2, field.type.alignment); - } - return result2; - } - static flatTypes(fields) { - const result2 = []; - for (const field of fields) { - result2.push(...field.type.flatTypes); - } - return result2; - } - }; - var RecordField; - (function(RecordField2) { - function create(name, type) { - return { name, type }; - } - RecordField2.create = create; - })(RecordField || (RecordField = {})); - var RecordType2 = class extends BaseRecordType { - constructor(fields) { - const recordFields = []; - for (const [name, type] of fields) { - recordFields.push(RecordField.create(name, type)); - } - super(recordFields, ComponentModelTypeKind.record); - } - create(fields, values) { - const result2 = {}; - for (let i = 0; i < fields.length; i++) { - const field = fields[i]; - const value = values[i]; - result2[field.name] = value; - } - return result2; - } - elements(record, fields) { - const result2 = []; - for (const field of fields) { - const value = record[field.name]; - result2.push(value); - } - return result2; - } - }; - exports2.RecordType = RecordType2; - var TupleField; - (function(TupleField2) { - function create(type) { - return { type }; - } - TupleField2.create = create; - })(TupleField || (TupleField = {})); - var TupleType = class extends BaseRecordType { - constructor(fields) { - const tupleFields = []; - for (const type of fields) { - tupleFields.push(TupleField.create(type)); - } - super(tupleFields, ComponentModelTypeKind.tuple); - } - create(_fields, values) { - return values; - } - elements(record, _fields) { - return record; - } - }; - exports2.TupleType = TupleType; - var FlagsType = class _FlagsType { - constructor(numberOfFlags) { - __publicField(this, "type"); - __publicField(this, "arraySize"); - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - this.kind = ComponentModelTypeKind.flags; - this.size = _FlagsType.size(numberOfFlags); - this.alignment = _FlagsType.alignment(numberOfFlags); - this.flatTypes = _FlagsType.flatTypes(numberOfFlags); - this.type = _FlagsType.getType(numberOfFlags); - this.arraySize = _FlagsType.num32Flags(numberOfFlags); - } - load(memory, offset, context) { - return this.type === void 0 ? 0 : this.loadFrom(this.type.load(memory, offset, context)); - } - liftFlat(memory, values, context) { - return this.type === void 0 ? 0 : this.loadFrom(this.type.liftFlat(memory, values, context)); - } - loadFrom(value) { - if (typeof value === "number") { - return value; - } else { - let result2 = 0n; - for (let f = 0, i = value.length - 1; f < value.length; f++, i--) { - const bits = value[i]; - result2 = result2 | BigInt(bits) << BigInt(f * 32); - } - return result2; - } - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memory, offset, flags, context) { - if (this.type !== void 0) { - this.type.store(memory, offset, this.storeInto(flags), context); - } - } - lowerFlat(result2, _memory, flags, context) { - if (this.type !== void 0) { - this.type.lowerFlat(result2, _memory, this.storeInto(flags), context); - } - } - copy(dest, dest_offset, src, src_offset, context) { - if (this.type !== void 0) { - this.type.copy(dest, dest_offset, src, src_offset, context); - } - } - storeInto(value) { - if (typeof value === "number") { - return value; - } else { - const result2 = new Array(this.arraySize).fill(0); - for (let f = 0, i = result2.length - 1; f < result2.length; f++, i--) { - const bits = Number(value >> BigInt(f * 32) & BigInt(4294967295)); - result2[i] = bits; - } - return result2; - } - } - static size(numberOfFlags) { - if (numberOfFlags === 0) { - return 0; - } else if (numberOfFlags <= 8) { - return 1; - } else if (numberOfFlags <= 16) { - return 2; - } else { - return 4 * this.num32Flags(numberOfFlags); - } - } - static alignment(numberOfFlags) { - if (numberOfFlags <= 8) { - return 1; - } else if (numberOfFlags <= 16) { - return 2; - } else { - return 4; - } - } - static getType(numberOfFlags) { - if (numberOfFlags === 0) { - return void 0; - } else if (numberOfFlags <= 8) { - return exports2.u8; - } else if (numberOfFlags <= 16) { - return exports2.u16; - } else if (numberOfFlags <= 32) { - return exports2.u32; - } else { - return new TupleType(new Array(this.num32Flags(numberOfFlags)).fill(exports2.u32)); - } - } - static flatTypes(numberOfFlags) { - return new Array(this.num32Flags(numberOfFlags)).fill($i32); - } - static num32Flags(numberOfFlags) { - return Math.ceil(numberOfFlags / 32); - } - }; - exports2.FlagsType = FlagsType; - var VariantCase; - (function(VariantCase2) { - function create(index, tag, type) { - return { index, tag, type, wantFlatTypes: type !== void 0 ? [] : void 0 }; - } - VariantCase2.create = create; - })(VariantCase || (VariantCase = {})); - var VariantType2 = class _VariantType { - constructor(variants, ctor, kind = ComponentModelTypeKind.variant) { - __publicField(this, "cases"); - __publicField(this, "case2Index"); - __publicField(this, "ctor"); - __publicField(this, "discriminantType"); - __publicField(this, "maxCaseAlignment"); - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - const cases = []; - this.case2Index = /* @__PURE__ */ new Map(); - for (let i = 0; i < variants.length; i++) { - const type = variants[i][1]; - const name = variants[i][0]; - this.case2Index.set(name, i); - cases.push(VariantCase.create(i, name, type)); - } - this.cases = cases; - this.ctor = ctor; - this.discriminantType = _VariantType.discriminantType(cases.length); - this.maxCaseAlignment = _VariantType.maxCaseAlignment(cases); - this.kind = kind; - this.size = _VariantType.size(this.discriminantType, cases); - this.alignment = _VariantType.alignment(this.discriminantType, cases); - this.flatTypes = _VariantType.flatTypes(this.discriminantType, cases); - } - load(memory, offset, context) { - const caseIndex = this.discriminantType.load(memory, offset, context); - const caseVariant = this.cases[caseIndex]; - if (caseVariant.type === void 0) { - return this.ctor(caseVariant.tag, void 0); - } else { - offset += this.discriminantType.size; - offset = align(offset, this.maxCaseAlignment); - const value = caseVariant.type.load(memory, offset, context); - return this.ctor(caseVariant.tag, value); - } - } - liftFlat(memory, values, context) { - let valuesToReadOver = this.flatTypes.length - 1; - const caseIndex = this.discriminantType.liftFlat(memory, values, context); - const caseVariant = this.cases[caseIndex]; - let result2; - if (caseVariant.type === void 0) { - result2 = this.ctor(caseVariant.tag, void 0); - } else { - const wantFlatTypes = caseVariant.wantFlatTypes; - const iter = new CoerceValueIter(values, this.flatTypes.slice(1), wantFlatTypes); - const value = caseVariant.type.liftFlat(memory, iter, context); - result2 = this.ctor(caseVariant.tag, value); - valuesToReadOver = valuesToReadOver - wantFlatTypes.length; - } - for (let i = 0; i < valuesToReadOver; i++) { - values.next(); - } - return result2; - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memory, offset, variantValue, context) { - const index = this.case2Index.get(variantValue.tag); - if (index === void 0) { - throw new ComponentModelTrap(`Variant case ${variantValue.tag} not found`); - } - this.discriminantType.store(memory, offset, index, context); - offset += this.discriminantType.size; - const c = this.cases[index]; - if (c.type !== void 0 && variantValue.value !== void 0) { - offset = align(offset, this.maxCaseAlignment); - c.type.store(memory, offset, variantValue.value, context); - } - } - lowerFlat(result2, memory, variantValue, context) { - const flatTypes = this.flatTypes; - const index = this.case2Index.get(variantValue.tag); - if (index === void 0) { - throw new ComponentModelTrap(`Variant case ${variantValue.tag} not found`); - } - this.discriminantType.lowerFlat(result2, memory, index, context); - const c = this.cases[index]; - let valuesToFill = this.flatTypes.length - 1; - if (c.type !== void 0 && variantValue.value !== void 0) { - const payload = []; - c.type.lowerFlat(payload, memory, variantValue.value, context); - const wantTypes = flatTypes.slice(1); - const haveTypes = c.wantFlatTypes; - if (payload.length !== haveTypes.length) { - throw new ComponentModelTrap("Mismatched flat types"); - } - for (let i = 0; i < wantTypes.length; i++) { - const have = haveTypes[i]; - const want = wantTypes[i]; - if (have === $f32 && want === $i32) { - payload[i] = WasmTypes.reinterpret_f32_as_i32(payload[i]); - } else if (have === $i32 && want === $i64) { - payload[i] = WasmTypes.convert_i32_to_i64(payload[i]); - } else if (have === $f32 && want === $i64) { - payload[i] = WasmTypes.reinterpret_f32_as_i64(payload[i]); - } else if (have === $f64 && want === $i64) { - payload[i] = WasmTypes.reinterpret_f64_as_i64(payload[i]); - } - } - valuesToFill = valuesToFill - payload.length; - result2.push(...payload); - } - for (let i = flatTypes.length - valuesToFill; i < flatTypes.length; i++) { - const type = flatTypes[i]; - if (type === $i64) { - result2.push(0n); - } else { - result2.push(0); - } - } - } - copy(dest, dest_offset, src, src_offset, context) { - this.discriminantType.copy(dest, dest_offset, src, src_offset, context); - const caseIndex = this.discriminantType.load(src, src_offset, context); - const caseVariant = this.cases[caseIndex]; - if (caseVariant.type === void 0) { - return; - } - src_offset += this.discriminantType.size; - src_offset = align(src_offset, this.maxCaseAlignment); - dest_offset += this.discriminantType.size; - dest_offset = align(dest_offset, this.maxCaseAlignment); - caseVariant.type.copy(dest, dest_offset, src, src_offset, context); - } - static size(discriminantType, cases) { - let result2 = discriminantType.size; - result2 = align(result2, this.maxCaseAlignment(cases)); - return result2 + this.maxCaseSize(cases); - } - static alignment(discriminantType, cases) { - return Math.max(discriminantType.alignment, this.maxCaseAlignment(cases)); - } - static flatTypes(discriminantType, cases) { - const flat = []; - for (const c of cases) { - if (c.type === void 0) { - continue; - } - const flatTypes = c.type.flatTypes; - for (let i = 0; i < flatTypes.length; i++) { - const want = flatTypes[i]; - if (i < flat.length) { - const use = this.joinFlatType(flat[i], want); - flat[i] = use; - c.wantFlatTypes.push(want); - } else { - flat.push(want); - c.wantFlatTypes.push(want); - } - } - } - return [...discriminantType.flatTypes, ...flat]; - } - static discriminantType(cases) { - switch (Math.ceil(Math.log2(cases) / 8)) { - case 0: - return exports2.u8; - case 1: - return exports2.u8; - case 2: - return exports2.u16; - case 3: - return exports2.u32; - } - throw new ComponentModelTrap(`Too many cases: ${cases}`); - } - static maxCaseAlignment(cases) { - let result2 = 1; - for (const c of cases) { - if (c.type !== void 0) { - result2 = Math.max(result2, c.type.alignment); - } - } - return result2; - } - static maxCaseSize(cases) { - let result2 = 0; - for (const c of cases) { - if (c.type !== void 0) { - result2 = Math.max(result2, c.type.size); - } - } - return result2; - } - static joinFlatType(a, b) { - if (a === b) { - return a; - } - if (a === $i32 && b === $f32 || a === $f32 && b === $i32) { - return $i32; - } - return $i64; - } - }; - exports2.VariantType = VariantType2; - var EnumType = class _EnumType { - constructor(cases) { - __publicField(this, "discriminantType"); - __publicField(this, "cases"); - __publicField(this, "case2index"); - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - this.discriminantType = _EnumType.discriminantType(cases.length); - this.cases = cases; - this.case2index = /* @__PURE__ */ new Map(); - for (let i = 0; i < cases.length; i++) { - const c = cases[i]; - this.case2index.set(c, i); - } - this.kind = ComponentModelTypeKind.enum; - this.size = this.discriminantType.size; - this.alignment = this.discriminantType.alignment; - this.flatTypes = this.discriminantType.flatTypes; - } - load(memory, offset, context) { - const index = this.assertRange(this.discriminantType.load(memory, offset, context)); - return this.cases[index]; - } - liftFlat(memory, values, context) { - const index = this.assertRange(this.discriminantType.liftFlat(memory, values, context)); - return this.cases[index]; - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memory, offset, value, context) { - const index = this.case2index.get(value); - if (index === void 0) { - throw new ComponentModelTrap("Enumeration value not found"); - } - this.discriminantType.store(memory, offset, index, context); - } - lowerFlat(result2, memory, value, context) { - const index = this.case2index.get(value); - if (index === void 0) { - throw new ComponentModelTrap("Enumeration value not found"); - } - this.discriminantType.lowerFlat(result2, memory, index, context); - } - copy(dest, dest_offset, src, src_offset, context) { - this.discriminantType.copy(dest, dest_offset, src, src_offset, context); - } - assertRange(value) { - if (value < 0 || value > this.cases.length) { - throw new ComponentModelTrap("Enumeration value out of range"); - } - return value; - } - static discriminantType(cases) { - switch (Math.ceil(Math.log2(cases) / 8)) { - case 0: - return exports2.u8; - case 1: - return exports2.u8; - case 2: - return exports2.u16; - case 3: - return exports2.u32; - } - throw new ComponentModelTrap(`Too many cases: ${cases}`); - } - }; - exports2.EnumType = EnumType; - var option; - (function(option2) { - option2.none = "none"; - function None() { - return new OptionImpl(option2.none, void 0); - } - option2.None = None; - option2.some = "some"; - function Some(value) { - return new OptionImpl(option2.some, value); - } - option2.Some = Some; - function _ctor(c, v) { - return new OptionImpl(c, v); - } - option2._ctor = _ctor; - function isOption(value) { - return value instanceof OptionImpl; - } - option2.isOption = isOption; - class OptionImpl { - constructor(tag, value) { - __publicField(this, "_tag"); - __publicField(this, "_value"); - this._tag = tag; - this._value = value; - } - get tag() { - return this._tag; - } - get value() { - return this._value; - } - isNone() { - return this._tag === option2.none; - } - isSome() { - return this._tag === option2.some; - } - } - })(option || (exports2.option = option = {})); - var OptionType = class { - constructor(valueType) { - __publicField(this, "valueType"); - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - this.valueType = valueType; - this.kind = ComponentModelTypeKind.option; - this.size = this.computeSize(); - this.alignment = this.computeAlignment(); - this.flatTypes = this.computeFlatTypes(); - } - load(memory, offset, context) { - const caseIndex = exports2.u8.load(memory, offset, context); - if (caseIndex === 0) { - return context.options.keepOption ? option._ctor(option.none, void 0) : void 0; - } else { - offset += exports2.u8.size; - offset = align(offset, this.alignment); - const value = this.valueType.load(memory, offset, context); - return context.options.keepOption ? option._ctor(option.some, value) : value; - } - } - liftFlat(memory, values, context) { - const caseIndex = exports2.u8.liftFlat(memory, values, context); - if (caseIndex === 0) { - for (let i = 0; i < this.valueType.flatTypes.length; i++) { - values.next(); - } - return context.options.keepOption ? option._ctor(option.none, void 0) : void 0; - } else { - const value = this.valueType.liftFlat(memory, values, context); - return context.options.keepOption ? option._ctor(option.some, value) : value; - } - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memory, offset, value, context) { - const optValue = this.asOptionValue(value, context.options); - const index = optValue.tag === option.none ? 0 : 1; - exports2.u8.store(memory, offset, index, context); - offset += exports2.u8.size; - if (optValue.tag === option.some) { - offset = align(offset, this.valueType.alignment); - this.valueType.store(memory, offset, optValue.value, context); - } - } - lowerFlat(result2, memory, value, context) { - const optValue = this.asOptionValue(value, context.options); - const index = optValue.tag === option.none ? 0 : 1; - exports2.u8.lowerFlat(result2, memory, index, context); - if (optValue.tag === option.none) { - for (const type of this.valueType.flatTypes) { - if (type === $i64) { - result2.push(0n); - } else { - result2.push(0); - } - } - } else { - this.valueType.lowerFlat(result2, memory, optValue.value, context); - } - } - copy(dest, dest_offset, src, src_offset, context) { - exports2.u8.copy(dest, dest_offset, src, src_offset, context); - const caseIndex = exports2.u8.load(src, src_offset, context); - if (caseIndex === 0) { - return; - } else { - src_offset += exports2.u8.size; - src_offset = align(src_offset, this.alignment); - dest_offset += exports2.u8.size; - dest_offset = align(dest_offset, this.alignment); - this.valueType.copy(dest, dest_offset, src, src_offset, context); - } - } - asOptionValue(value, options) { - if (option.isOption(value)) { - if (!options.keepOption) { - throw new ComponentModelTrap("Received an option value although options should be unpacked."); - } - return value; - } else { - if (options.keepOption) { - throw new ComponentModelTrap("Received a unpacked option value although options should NOT be unpacked."); - } - return value === void 0 ? option._ctor(option.none, void 0) : option._ctor(option.some, value); - } - } - computeSize() { - let result2 = exports2.u8.size; - result2 = align(result2, this.valueType.alignment); - return result2 + this.valueType.size; - } - computeAlignment() { - return Math.max(exports2.u8.alignment, this.valueType.alignment); - } - computeFlatTypes() { - return [...exports2.u8.flatTypes, ...this.valueType.flatTypes]; - } - }; - exports2.OptionType = OptionType; - var result; - (function(result2) { - result2.ok = "ok"; - function Ok(value) { - return new ResultImpl(result2.ok, value); - } - result2.Ok = Ok; - result2.error = "error"; - function Error2(value) { - return new ResultImpl(result2.error, value); - } - result2.Error = Error2; - function _ctor(c, v) { - return new ResultImpl(c, v); - } - result2._ctor = _ctor; - class ResultImpl { - constructor(tag, value) { - __publicField(this, "_tag"); - __publicField(this, "_value"); - this._tag = tag; - this._value = value; - } - get tag() { - return this._tag; - } - get value() { - return this._value; - } - isOk() { - return this._tag === result2.ok; - } - isError() { - return this._tag === result2.error; - } - } - result2.ResultImpl = ResultImpl; - })(result || (exports2.result = result = {})); - var ResultType = class extends VariantType2 { - constructor(okType, errorType) { - super([["ok", okType], ["error", errorType]], result._ctor, ComponentModelTypeKind.result); - } - }; - exports2.ResultType = ResultType; - var _Callable = class _Callable { - constructor(witName, params, returnType) { - __publicField(this, "witName"); - __publicField(this, "params"); - __publicField(this, "returnType"); - __publicField(this, "paramType"); - __publicField(this, "isSingleParam"); - __publicField(this, "mode"); - this.witName = witName; - this.params = params; - this.returnType = returnType; - switch (params.length) { - case 0: - this.paramType = void 0; - this.isSingleParam = false; - break; - case 1: - this.paramType = params[0][1]; - this.isSingleParam = true; - break; - default: - this.paramType = new TupleType(params.map((p) => p[1])); - this.isSingleParam = false; - } - this.mode = "lower"; - } - liftParamValues(wasmValues, memory, context) { - if (this.paramType === void 0) { - return _Callable.EMPTY_JTYPE; - } - let result2; - if (this.paramType.flatTypes.length > _Callable.MAX_FLAT_PARAMS) { - const p0 = wasmValues[0]; - if (!Number.isInteger(p0)) { - throw new ComponentModelTrap("Invalid pointer"); - } - result2 = this.paramType.load(memory.readonly(p0, this.paramType.size), 0, context); - } else { - result2 = this.paramType.liftFlat(memory, wasmValues.values(), context); - } - return this.isSingleParam ? [result2] : result2; - } - lowerParamValues(values, memory, context, out) { - if (this.paramType === void 0) { - return _Callable.EMPTY_WASM_TYPE; - } - if (this.isSingleParam && values.length !== 1) { - throw new ComponentModelTrap(`Expected a single parameter, but got ${values.length}`); - } - const toLower = this.isSingleParam ? values[0] : values; - if (this.paramType.flatTypes.length > _Callable.MAX_FLAT_PARAMS) { - const writer = out !== void 0 ? memory.preAllocated(out, this.paramType.size) : this.paramType.alloc(memory); - this.paramType.store(writer, 0, toLower, context); - return [writer.ptr]; - } else { - const result2 = []; - this.paramType.lowerFlat(result2, memory, toLower, context); - return result2; - } - } - lowerReturnValue(value, memory, context, out) { - if (this.returnType === void 0) { - return; - } else if (this.returnType.flatTypes.length <= _Callable.MAX_FLAT_RESULTS) { - const result2 = []; - this.returnType.lowerFlat(result2, memory, value, context); - if (result2.length !== this.returnType.flatTypes.length) { - throw new ComponentModelTrap(`Expected flat result of length ${this.returnType.flatTypes.length}, but got ${JSON.stringify(result2, void 0, void 0)}`); - } - return result2[0]; - } else { - const writer = out !== void 0 ? memory.preAllocated(out, this.returnType.size) : this.returnType.alloc(memory); - this.returnType.store(writer, 0, value, context); - return; - } - } - callWasm(params, wasmFunction, context) { - const memory = context.getMemory(); - const wasmValues = this.lowerParamValues(params, memory, context, void 0); - let resultRange = void 0; - let result2; - if (this.returnType !== void 0 && this.returnType.flatTypes.length > FunctionType2.MAX_FLAT_RESULTS) { - resultRange = this.returnType.alloc(memory); - result2 = wasmFunction(...wasmValues, resultRange.ptr); - } else { - result2 = wasmFunction(...wasmValues); - } - return this.liftReturnValue(result2, resultRange?.ptr, memory, context); - } - getParamValuesForHostCall(params, context) { - const memory = context.getMemory(); - const returnFlatTypes = this.returnType === void 0 ? 0 : this.returnType.flatTypes.length; - let out; - if (returnFlatTypes > FunctionType2.MAX_FLAT_RESULTS) { - const paramFlatTypes = this.paramType !== void 0 ? this.paramType.flatTypes.length : 0; - if (params.length === paramFlatTypes + 1) { - const last = params[paramFlatTypes]; - if (typeof last !== "number") { - throw new ComponentModelTrap(`Result pointer must be a number (u32), but got ${out}.`); - } - out = last; - } - } - return [this.liftParamValues(params, memory, context), out]; - } - liftReturnValue(value, out, memory, context) { - if (this.returnType === void 0) { - return; - } else if (this.returnType.flatTypes.length <= _Callable.MAX_FLAT_RESULTS) { - return this.returnType.liftFlat(memory, [value].values(), context); - } else { - return this.returnType.load(memory.readonly(out, this.returnType.size), 0, context); - } - } - }; - __publicField(_Callable, "EMPTY_JTYPE", Object.freeze([])); - __publicField(_Callable, "EMPTY_WASM_TYPE", Object.freeze([])); - __publicField(_Callable, "MAX_FLAT_PARAMS", 16); - __publicField(_Callable, "MAX_FLAT_RESULTS", 1); - var Callable = _Callable; - var FunctionType2 = class extends Callable { - constructor(witName, params, returnType) { - super(witName, params, returnType); - } - callHost(func, params, context) { - const [jParams, out] = this.getParamValuesForHostCall(params, context); - const result2 = func(...jParams); - return this.lowerReturnValue(result2, context.getMemory(), context, out); - } - }; - exports2.FunctionType = FunctionType2; - var ConstructorType = class extends Callable { - constructor(witName, params, returnType) { - super(witName, params, returnType); - } - callHost(clazz, params, resourceManager, context) { - const returnFlatTypes = this.returnType === void 0 ? 0 : this.returnType.flatTypes.length; - if (returnFlatTypes !== 1) { - throw new ComponentModelTrap(`Expected exactly one return type, but got ${returnFlatTypes}.`); - } - const memory = context.getMemory(); - const jParams = this.liftParamValues(params, memory, context); - const obj = new clazz(...jParams); - const handle = resourceManager.$handle(obj); - return handle; - } - }; - exports2.ConstructorType = ConstructorType; - var DestructorType = class extends Callable { - constructor(witName, params) { - super(witName, params); - } - callHost(params, resourceManager) { - const handle = params[0]; - if (typeof handle === "bigint" || !$u32.valid(handle)) { - throw new ComponentModelTrap(`Object handle must be a number (u32), but got ${handle}.`); - } - const resource = resourceManager.$resource(handle); - resource["$drop"] !== void 0 && resource["$drop"](); - resourceManager.$drop(handle); - } - }; - exports2.DestructorType = DestructorType; - var StaticMethodType = class extends Callable { - constructor(witName, params, returnType) { - super(witName, params, returnType); - } - callHost(func, params, context) { - const [jParams, out] = this.getParamValuesForHostCall(params, context); - const result2 = func(...jParams); - return this.lowerReturnValue(result2, context.getMemory(), context, out); - } - }; - exports2.StaticMethodType = StaticMethodType; - var MethodType = class extends Callable { - constructor(witName, params, returnType) { - super(witName, params, returnType); - } - callHost(methodName, params, resourceManager, context) { - if (params.length === 0) { - throw new ComponentModelTrap(`Method calls must have at least one parameter (the object pointer).`); - } - const handle = params.shift(); - if (typeof handle !== "number") { - throw new ComponentModelTrap(`Object handle must be a number (u32), but got ${handle}.`); - } - const [jParams, out] = this.getParamValuesForHostCall(params, context); - const resource = resourceManager.$resource(handle); - const memory = context.getMemory(); - const result2 = resource[methodName](...jParams); - return this.lowerReturnValue(result2, memory, context, out); - } - callWasmMethod(params, wasmFunction, resourceManager, context) { - const memory = context.getMemory(); - const obj = params.shift(); - const handle = obj.$handle ?? resourceManager.$handle(obj); - const wasmValues = this.lowerParamValues(params, memory, context, void 0); - let resultRange = void 0; - let result2; - if (this.returnType !== void 0 && this.returnType.flatTypes.length > FunctionType2.MAX_FLAT_RESULTS) { - resultRange = this.returnType.alloc(memory); - result2 = wasmFunction(handle, ...wasmValues, resultRange.ptr); - } else { - result2 = wasmFunction(handle, ...wasmValues); - } - return this.liftReturnValue(result2, resultRange?.ptr, memory, context); - } - }; - exports2.MethodType = MethodType; - var ResourceHandleType = class { - constructor(witName) { - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - __publicField(this, "witName"); - this.witName = witName; - this.kind = ComponentModelTypeKind.resourceHandle; - this.size = exports2.u32.size; - this.alignment = exports2.u32.alignment; - this.flatTypes = exports2.u32.flatTypes; - } - load(memory, offset, context) { - return exports2.u32.load(memory, offset, context); - } - liftFlat(memory, values, context) { - return exports2.u32.liftFlat(memory, values, context); - } - alloc(memory) { - return exports2.u32.alloc(memory); - } - store(memory, offset, value, context) { - exports2.u32.store(memory, offset, value, context); - } - lowerFlat(result2, memory, value, context) { - exports2.u32.lowerFlat(result2, memory, value, context); - } - copy(dest, dest_offset, src, src_offset, context) { - exports2.u32.copy(dest, dest_offset, src, src_offset, context); - } - }; - exports2.ResourceHandleType = ResourceHandleType; - var ResourceType = class { - constructor(witName, id) { - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - __publicField(this, "witName"); - __publicField(this, "id"); - __publicField(this, "callables"); - this.kind = ComponentModelTypeKind.resource; - this.size = exports2.u32.size; - this.alignment = exports2.u32.alignment; - this.flatTypes = exports2.u32.flatTypes; - this.witName = witName; - this.id = id; - this.callables = /* @__PURE__ */ new Map(); - } - addConstructor(jsName, func) { - this.callables.set(jsName, func); - } - addDestructor(jsName, func) { - this.callables.set(jsName, func); - } - addStaticMethod(jsName, func) { - this.callables.set(jsName, func); - } - addMethod(jsName, func) { - this.callables.set(jsName, func); - } - getCallable(jsName) { - const result2 = this.callables.get(jsName); - if (result2 === void 0) { - throw new ComponentModelTrap(`Method '${jsName}' not found on resource '${this.witName}'.`); - } - return result2; - } - load(memory, offset, context) { - const handle = exports2.u32.load(memory, offset, context); - return context.resources.get(this.id).$resource(handle); - } - liftFlat(memory, values, context) { - const handle = exports2.u32.liftFlat(memory, values, context); - return context.resources.get(this.id).$resource(handle); - } - alloc(memory) { - return exports2.u32.alloc(memory); - } - store(memory, offset, value, context) { - const handle = context.resources.get(this.id).$handle(value); - exports2.u32.store(memory, offset, handle, context); - } - lowerFlat(result2, memory, value, context) { - const handle = context.resources.get(this.id).$handle(value); - exports2.u32.lowerFlat(result2, memory, handle, context); - } - copy(dest, dest_offset, src, src_offset, context) { - exports2.u32.copy(dest, dest_offset, src, src_offset, context); - } - }; - exports2.ResourceType = ResourceType; - var AbstractWrapperType = class { - constructor(kind, wrapped) { - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - __publicField(this, "wrapped"); - this.kind = kind; - this.wrapped = wrapped; - this.size = exports2.u32.size; - this.alignment = exports2.u32.alignment; - this.flatTypes = exports2.u32.flatTypes; - } - load(memory, offset, context) { - return this.wrapped.load(memory, offset, context); - } - liftFlat(memory, values, context) { - return this.wrapped.liftFlat(memory, values, context); - } - alloc(memory) { - return exports2.u32.alloc(memory); - } - store(memory, offset, value, context) { - return this.wrapped.store(memory, offset, value, context); - } - lowerFlat(result2, memory, value, context) { - return this.wrapped.lowerFlat(result2, memory, value, context); - } - copy(dest, dest_offset, src, src_offset, context) { - return this.wrapped.copy(dest, dest_offset, src, src_offset, context); - } - }; - var BorrowType = class extends AbstractWrapperType { - constructor(type) { - super(ComponentModelTypeKind.borrow, type); - } - }; - exports2.BorrowType = BorrowType; - var OwnType = class extends AbstractWrapperType { - constructor(type) { - super(ComponentModelTypeKind.own, type); - } - }; - exports2.OwnType = OwnType; - var ComponentModelTypeVisitor; - (function(ComponentModelTypeVisitor2) { - function visit(type, visitor) { - switch (type.kind) { - case ComponentModelTypeKind.u8: - visitor.visitU8 !== void 0 && visitor.visitU8(type); - break; - case ComponentModelTypeKind.u16: - visitor.visitU16 !== void 0 && visitor.visitU16(type); - break; - case ComponentModelTypeKind.u32: - visitor.visitU32 !== void 0 && visitor.visitU32(type); - break; - case ComponentModelTypeKind.u64: - visitor.visitU64 !== void 0 && visitor.visitU64(type); - break; - case ComponentModelTypeKind.s8: - visitor.visitS8 !== void 0 && visitor.visitS8(type); - break; - case ComponentModelTypeKind.s16: - visitor.visitS16 !== void 0 && visitor.visitS16(type); - break; - case ComponentModelTypeKind.s32: - visitor.visitS32 !== void 0 && visitor.visitS32(type); - break; - case ComponentModelTypeKind.s64: - visitor.visitS64 !== void 0 && visitor.visitS64(type); - break; - case ComponentModelTypeKind.float32: - visitor.visitFloat32 !== void 0 && visitor.visitFloat32(type); - break; - case ComponentModelTypeKind.float64: - visitor.visitFloat64 !== void 0 && visitor.visitFloat64(type); - break; - case ComponentModelTypeKind.bool: - visitor.visitBool !== void 0 && visitor.visitBool(type); - break; - case ComponentModelTypeKind.string: - visitor.visitString !== void 0 && visitor.visitString(type); - break; - case ComponentModelTypeKind.enum: - visitor.visitEnum !== void 0 && visitor.visitEnum(type); - break; - case ComponentModelTypeKind.flags: - visitor.visitFlags !== void 0 && visitor.visitFlags(type); - break; - case ComponentModelTypeKind.borrow: - visitor.visitBorrow !== void 0 && visitor.visitBorrow(type); - break; - case ComponentModelTypeKind.own: - visitor.visitOwn !== void 0 && visitor.visitOwn(type); - break; - case ComponentModelTypeKind.resource: - visitor.visitResource !== void 0 && visitor.visitResource(type); - break; - case ComponentModelTypeKind.resourceHandle: - visitor.visitResourceHandle !== void 0 && visitor.visitResourceHandle(type); - break; - case ComponentModelTypeKind.list: - if (visitor.visitList !== void 0 && visitor.visitList(type)) { - visit(type.elementType, visitor); - } - visitor.endVisitList !== void 0 && visitor.endVisitList(type); - break; - case ComponentModelTypeKind.record: - if (visitor.visitRecord !== void 0 && visitor.visitRecord(type) || visitor.visitRecord === void 0) { - for (const field of type.fields) { - visit(field.type, visitor); - } - } - visitor.endVisitRecord !== void 0 && visitor.endVisitRecord(type); - break; - case ComponentModelTypeKind.tuple: - if (visitor.visitTuple !== void 0 && visitor.visitTuple(type) || visitor.visitTuple === void 0) { - for (const field of type.fields) { - visit(field.type, visitor); - } - } - visitor.endVisitTuple !== void 0 && visitor.endVisitTuple(type); - break; - case ComponentModelTypeKind.variant: - if (visitor.visitVariant !== void 0 && visitor.visitVariant(type) || visitor.visitVariant === void 0) { - for (const field of type.cases) { - field.type !== void 0 && visit(field.type, visitor); - } - } - visitor.endVisitVariant !== void 0 && visitor.endVisitVariant(type); - break; - case ComponentModelTypeKind.option: - if (visitor.visitOption !== void 0 && visitor.visitOption(type) || visitor.visitOption === void 0) { - visit(type.valueType, visitor); - } - visitor.endVisitOption !== void 0 && visitor.endVisitOption(type); - break; - case ComponentModelTypeKind.result: - if (visitor.visitResult !== void 0 && visitor.visitResult(type) || visitor.visitResult === void 0) { - for (const field of type.cases) { - field.type !== void 0 && visit(field.type, visitor); - } - } - visitor.endVisitResult !== void 0 && visitor.endVisitResult(type); - break; - default: - throw new Error(`Unknown type kind ${type.kind}`); - } - } - ComponentModelTypeVisitor2.visit = visit; - })(ComponentModelTypeVisitor || (exports2.ComponentModelTypeVisitor = ComponentModelTypeVisitor = {})); - var InterfaceType; - (function(InterfaceType2) { - function is(value) { - return typeof value === "object" && typeof value.id === "string" && typeof value.witName === "string" && value.types instanceof Map && value.functions instanceof Map && value.resources instanceof Map; - } - InterfaceType2.is = is; - })(InterfaceType || (exports2.InterfaceType = InterfaceType = {})); - var PackageType; - (function(PackageType2) { - function is(value) { - return typeof value === "object" && typeof value.id === "string" && typeof value.witName === "string" && value.interfaces instanceof Map; - } - PackageType2.is = is; - })(PackageType || (exports2.PackageType = PackageType = {})); - var WasmContext2; - (function(WasmContext3) { - class Default { - constructor() { - __publicField(this, "memory"); - __publicField(this, "options"); - __publicField(this, "resources"); - this.options = { encoding: "utf-8" }; - this.resources = new ResourceManagers.Default(); - } - initialize(memory) { - if (this.memory !== void 0) { - throw new MemoryError(`Memory is already initialized.`); - } - this.memory = memory; - } - getMemory() { - if (this.memory === void 0) { - throw new MemoryError(`Memory not yet initialized.`); - } - return this.memory; - } - } - WasmContext3.Default = Default; - })(WasmContext2 || (exports2.WasmContext = WasmContext2 = {})); - var Resource = class { - constructor() { - __publicField(this, "_handle"); - this._handle = void 0; - } - get $handle() { - return this._handle; - } - set $handle(value) { - if (value === void 0) { - throw new ComponentModelTrap("Cannot set undefined handle"); - } - if (this._handle !== void 0) { - throw new ComponentModelTrap(`Cannot set handle twice. Current handle is ${this._handle} new handle is ${value}.`); - } - this._handle = value; - } - }; - exports2.Resource = Resource; - var Imports2; - (function(Imports3) { - function create(functions, resources, service, context) { - const result2 = /* @__PURE__ */ Object.create(null); - if (functions !== void 0) { - for (const [funcName, func] of functions) { - result2[func.witName] = createFunction(func, service[funcName], context); - } - } - if (resources !== void 0) { - for (const [resourceName, resource] of resources) { - const clazz = service[resourceName]; - let resourceManager; - if (context.resources.has(resource.id)) { - resourceManager = context.resources.get(resource.id); - } else { - resourceManager = ResourceManager.from(clazz) ?? new ResourceManager.Default(); - context.resources.set(resource.id, resourceManager); - } - for (const [callableName, callable] of resource.callables) { - if (callable instanceof ConstructorType) { - result2[callable.witName] = createConstructorFunction(callable, clazz, resourceManager, context); - } else if (callable instanceof StaticMethodType) { - result2[callable.witName] = createStaticMethodFunction(callable, service[resourceName][callableName], context); - } else if (callable instanceof MethodType) { - result2[callable.witName] = createMethodFunction(callableName, callable, resourceManager, context); - } else if (callable instanceof DestructorType) { - result2[callable.witName] = createDestructorFunction(callable, resourceManager); - } - } - } - } - return result2; - } - Imports3.create = create; - function createFunction(callable, serviceFunction, context) { - return function(...params) { - return callable.callHost(serviceFunction, params, context); - }; - } - function createConstructorFunction(callable, clazz, manager, context) { - return function(...params) { - return callable.callHost(clazz, params, manager, context); - }; - } - function createDestructorFunction(callable, manager) { - return function(...params) { - return callable.callHost(params, manager); - }; - } - function createStaticMethodFunction(callable, func, context) { - return function(...params) { - return callable.callHost(func, params, context); - }; - } - function createMethodFunction(name, callable, manager, context) { - return function(...params) { - return callable.callHost(name, params, manager, context); - }; - } - })(Imports2 || (exports2.Imports = Imports2 = {})); - var Module; - (function(Module2) { - function createObjectModule(resource, wasm, context) { - let resourceManager; - if (context.resources.has(resource.id)) { - resourceManager = context.resources.get(resource.id); - } else { - resourceManager = new ResourceManager.Default(); - context.resources.set(resource.id, resourceManager); - } - const result2 = /* @__PURE__ */ Object.create(null); - for (const [name, callable] of resource.callables) { - if (callable instanceof ConstructorType) { - result2[name] = createConstructorFunction(callable, wasm[callable.witName], context); - } else if (callable instanceof MethodType) { - result2[name] = createMethodFunction(callable, wasm[callable.witName], resourceManager, context); - } else if (callable instanceof DestructorType) { - result2[name] = createDestructorFunction(callable, wasm[callable.witName], context); - } - } - return result2; - } - Module2.createObjectModule = createObjectModule; - function createClassModule(resource, wasm, context) { - if (!context.resources.has(resource.id)) { - context.resources.set(resource.id, new ResourceManager.Default()); - } - const result2 = /* @__PURE__ */ Object.create(null); - for (const [name, callable] of resource.callables) { - if (callable instanceof StaticMethodType) { - result2[name] = createStaticMethodFunction(callable, wasm[callable.witName], context); - } - } - return result2; - } - Module2.createClassModule = createClassModule; - function createConstructorFunction(callable, wasmFunction, context) { - return (...params) => { - return callable.callWasm(params, wasmFunction, context); - }; - } - function createDestructorFunction(callable, wasmFunction, context) { - return (...params) => { - return callable.callWasm(params, wasmFunction, context); - }; - } - function createStaticMethodFunction(callable, wasmFunction, context) { - return (...params) => { - return callable.callWasm(params, wasmFunction, context); - }; - } - function createMethodFunction(callable, wasmFunction, manager, context) { - return (...params) => { - return callable.callWasmMethod(params, wasmFunction, manager, context); - }; - } - })(Module || (exports2.Module = Module = {})); - var Exports2; - (function(Exports3) { - function filter(exports3, functions, resources, id, version2, _context) { - const key = version2 !== void 0 ? `${id}@${version2}` : id; - let result2 = exports3[key]; - if (result2 !== null && typeof result2 === "object") { - return result2; - } - result2 = /* @__PURE__ */ Object.create(null); - if (functions !== void 0) { - for (const func of functions.values()) { - const funcKey = `${key}#${func.witName}`; - const candidate = exports3[funcKey]; - if (candidate !== null && candidate !== void 0) { - result2[func.witName] = candidate; - } - } - } - if (resources !== void 0) { - for (const resource of resources.values()) { - for (const callable of resource.callables.values()) { - const callableKey = `${key}#${callable.witName}`; - const candidate = exports3[callableKey]; - if (candidate !== null && candidate !== void 0) { - result2[callable.witName] = candidate; - } - } - } - } - return result2; - } - Exports3.filter = filter; - function bind(functions, resources, wasm, context) { - const result2 = /* @__PURE__ */ Object.create(null); - if (functions !== void 0) { - for (const [name, func] of functions) { - result2[name] = createFunction(func, wasm[func.witName], context); - } - } - if (resources !== void 0) { - for (const [name, , factory] of resources) { - result2[name] = factory(wasm, context); - } - } - return result2; - } - Exports3.bind = bind; - function createFunction(func, wasmFunction, context) { - return (...params) => { - return func.callWasm(params, wasmFunction, context); - }; - } - })(Exports2 || (exports2.Exports = Exports2 = {})); - } -}); - -// node_modules/@vscode/wasm-component-model/lib/common/api.js -var require_api = __commonJS({ - "node_modules/@vscode/wasm-component-model/lib/common/api.js"(exports2) { - "use strict"; - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { - for (var p in m) - if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) - __createBinding(exports3, m, p); - }; - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.RAL = void 0; - var ral_1 = __importDefault(require_ral()); - exports2.RAL = ral_1.default; - __exportStar(require_componentModel(), exports2); - } -}); - -// node_modules/@vscode/wasm-component-model/lib/node/main.js -var require_main = __commonJS({ - "node_modules/@vscode/wasm-component-model/lib/node/main.js"(exports2) { - "use strict"; - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { - for (var p in m) - if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) - __createBinding(exports3, m, p); - }; - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - var ril_1 = __importDefault(require_ril()); - ril_1.default.install(); - __exportStar(require_api(), exports2); - } -}); - -// src/extension.ts -var extension_exports = {}; -__export(extension_exports, { - activate: () => activate -}); -module.exports = __toCommonJS(extension_exports); -var vscode = __toESM(require("vscode")); -var import_wasm_component_model = __toESM(require_main()); - -// src/example.ts -var $wcm = __toESM(require_main()); -var example; -((example2) => { - let Types2; - ((Types3) => { - let Operation; - ((Operation2) => { - Operation2.add = "add"; - function Add(value) { - return new VariantImpl(Operation2.add, value); - } - Operation2.Add = Add; - Operation2.sub = "sub"; - function Sub(value) { - return new VariantImpl(Operation2.sub, value); - } - Operation2.Sub = Sub; - Operation2.mul = "mul"; - function Mul(value) { - return new VariantImpl(Operation2.mul, value); - } - Operation2.Mul = Mul; - Operation2.div = "div"; - function Div(value) { - return new VariantImpl(Operation2.div, value); - } - Operation2.Div = Div; - function _ctor(t, v) { - return new VariantImpl(t, v); - } - Operation2._ctor = _ctor; - class VariantImpl { - constructor(t, value) { - __publicField(this, "_tag"); - __publicField(this, "_value"); - this._tag = t; - this._value = value; - } - get tag() { - return this._tag; - } - get value() { - return this._value; - } - isAdd() { - return this._tag === Operation2.add; - } - isSub() { - return this._tag === Operation2.sub; - } - isMul() { - return this._tag === Operation2.mul; - } - isDiv() { - return this._tag === Operation2.div; - } - } - })(Operation = Types3.Operation || (Types3.Operation = {})); - })(Types2 = example2.Types || (example2.Types = {})); -})(example || (example = {})); -((example2) => { - let Types2; - ((Types3) => { - let $; - (($2) => { - $2.Operands = new $wcm.RecordType([ - ["left", $wcm.u32], - ["right", $wcm.u32] - ]); - $2.Operation = new $wcm.VariantType([["add", $2.Operands], ["sub", $2.Operands], ["mul", $2.Operands], ["div", $2.Operands]], example2.Types.Operation._ctor); - })($ = Types3.$ || (Types3.$ = {})); - })(Types2 = example2.Types || (example2.Types = {})); - ((Types3) => { - let _; - ((_2) => { - _2.id = "vscode:example/types"; - _2.witName = "types"; - _2.types = /* @__PURE__ */ new Map([ - ["Operands", Types3.$.Operands], - ["Operation", Types3.$.Operation] - ]); - })(_ = Types3._ || (Types3._ = {})); - })(Types2 = example2.Types || (example2.Types = {})); - let calculator2; - ((calculator3) => { - let $; - (($2) => { - $2.Operation = Types2.$.Operation; - let Imports2; - ((Imports3) => { - Imports3.log = new $wcm.FunctionType("log", [ - ["msg", $wcm.wstring] - ], void 0); - })(Imports2 = $2.Imports || ($2.Imports = {})); - let Exports2; - ((Exports3) => { - Exports3.calc = new $wcm.FunctionType("calc", [ - ["o", $2.Operation] - ], $wcm.u32); - })(Exports2 = $2.Exports || ($2.Exports = {})); - })($ = calculator3.$ || (calculator3.$ = {})); - })(calculator2 = example2.calculator || (example2.calculator = {})); - ((calculator3) => { - let _; - ((_2) => { - _2.id = "vscode:example/calculator"; - _2.witName = "calculator"; - let Imports2; - ((Imports3) => { - Imports3.functions = /* @__PURE__ */ new Map([ - ["log", calculator3.$.Imports.log] - ]); - Imports3.interfaces = /* @__PURE__ */ new Map([ - ["Types", Types2._] - ]); - })(Imports2 = _2.Imports || (_2.Imports = {})); - let Exports2; - ((Exports3) => { - Exports3.functions = /* @__PURE__ */ new Map([ - ["calc", calculator3.$.Exports.calc] - ]); - })(Exports2 = _2.Exports || (_2.Exports = {})); - function createImports(service, context) { - const result = /* @__PURE__ */ Object.create(null); - result["$root"] = $wcm.Imports.create(Imports2.functions, void 0, service, context); - return result; - } - _2.createImports = createImports; - function bindExports(exports2, context) { - const result = /* @__PURE__ */ Object.create(null); - Object.assign(result, $wcm.Exports.bind(Exports2.functions, void 0, exports2, context)); - return result; - } - _2.bindExports = bindExports; - })(_ = calculator3._ || (calculator3._ = {})); - })(calculator2 = example2.calculator || (example2.calculator = {})); -})(example || (example = {})); -((example2) => { - let _; - ((_2) => { - _2.id = "vscode:example"; - _2.witName = "example"; - _2.interfaces = /* @__PURE__ */ new Map([ - ["Types", example2.Types._] - ]); - _2.worlds = /* @__PURE__ */ new Map([ - ["calculator", example2.calculator._] - ]); - })(_ = example2._ || (example2._ = {})); -})(example || (example = {})); - -// src/extension.ts -var calculator = example.calculator; -var Types = example.Types; -async function activate(context) { - const channel = vscode.window.createOutputChannel("Calculator"); - context.subscriptions.push(channel); - const log = vscode.window.createOutputChannel("Calculator - Log", { log: true }); - context.subscriptions.push(log); - const filename = vscode.Uri.joinPath(context.extensionUri, "target", "wasm32-unknown-unknown", "debug", "calculator.wasm"); - const bits = await vscode.workspace.fs.readFile(filename); - const module2 = await WebAssembly.compile(bits); - const service = { - log: (msg) => { - log.info(msg); - } - }; - const wasmContext = new import_wasm_component_model.WasmContext.Default(); - const instance = await WebAssembly.instantiate(module2, calculator._.createImports(service, wasmContext)); - wasmContext.initialize(new import_wasm_component_model.Memory.Default(instance.exports)); - const api = calculator._.bindExports(instance.exports, wasmContext); - context.subscriptions.push(vscode.commands.registerCommand("vscode-samples.wasm-component-model.run", () => { - channel.show(); - channel.appendLine("Running calculator example"); - channel.appendLine(`Add ${api.calc(Types.Operation.Add({ left: 1, right: 2 }))}`); - channel.appendLine(`Sub ${api.calc(Types.Operation.Sub({ left: 10, right: 8 }))}`); - channel.appendLine(`Mul ${api.calc(Types.Operation.Mul({ left: 3, right: 7 }))}`); - channel.appendLine(`Div ${api.calc(Types.Operation.Div({ left: 10, right: 2 }))}`); - })); -} -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - activate -}); -//# sourceMappingURL=extension.js.map diff --git a/wasm-component-model/dist/desktop/extension.js.map b/wasm-component-model/dist/desktop/extension.js.map deleted file mode 100644 index 53b49d3e..00000000 --- a/wasm-component-model/dist/desktop/extension.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../node_modules/@vscode/wasm-component-model/lib/common/ral.js", "../../node_modules/@vscode/wasm-component-model/lib/node/ril.js", "../../node_modules/uuid/dist/esm-node/rng.js", "../../node_modules/uuid/dist/esm-node/regex.js", "../../node_modules/uuid/dist/esm-node/validate.js", "../../node_modules/uuid/dist/esm-node/stringify.js", "../../node_modules/uuid/dist/esm-node/v1.js", "../../node_modules/uuid/dist/esm-node/parse.js", "../../node_modules/uuid/dist/esm-node/v35.js", "../../node_modules/uuid/dist/esm-node/md5.js", "../../node_modules/uuid/dist/esm-node/v3.js", "../../node_modules/uuid/dist/esm-node/native.js", "../../node_modules/uuid/dist/esm-node/v4.js", "../../node_modules/uuid/dist/esm-node/sha1.js", "../../node_modules/uuid/dist/esm-node/v5.js", "../../node_modules/uuid/dist/esm-node/nil.js", "../../node_modules/uuid/dist/esm-node/version.js", "../../node_modules/uuid/dist/esm-node/index.js", "../../node_modules/@vscode/wasm-component-model/lib/common/componentModel.js", "../../node_modules/@vscode/wasm-component-model/lib/common/api.js", "../../node_modules/@vscode/wasm-component-model/lib/node/main.js", "../../src/extension.ts", "../../src/example.ts"], - "sourcesContent": ["\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet _ral;\nfunction RAL() {\n if (_ral === undefined) {\n throw new Error(`No runtime abstraction layer installed`);\n }\n return _ral;\n}\n(function (RAL) {\n function install(ral) {\n if (ral === undefined) {\n throw new Error(`No runtime abstraction layer provided`);\n }\n _ral = ral;\n }\n RAL.install = install;\n function isInstalled() {\n return _ral !== undefined;\n }\n RAL.isInstalled = isInstalled;\n})(RAL || (RAL = {}));\nexports.default = RAL;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nconst util_1 = require(\"util\");\nconst ral_1 = __importDefault(require(\"../common/ral\"));\nconst _ril = Object.freeze({\n TextEncoder: Object.freeze({\n create(encoding = 'utf-8') {\n return {\n encode(input) {\n return Buffer.from(input ?? '', encoding);\n }\n };\n }\n }),\n TextDecoder: Object.freeze({\n create(encoding = 'utf-8') {\n return new util_1.TextDecoder(encoding);\n }\n }),\n console: console,\n timer: Object.freeze({\n setTimeout(callback, ms, ...args) {\n const handle = setTimeout(callback, ms, ...args);\n return { dispose: () => clearTimeout(handle) };\n },\n setImmediate(callback, ...args) {\n const handle = setImmediate(callback, ...args);\n return { dispose: () => clearImmediate(handle) };\n },\n setInterval(callback, ms, ...args) {\n const handle = setInterval(callback, ms, ...args);\n return { dispose: () => clearInterval(handle) };\n }\n })\n});\nfunction RIL() {\n return _ril;\n}\n(function (RIL) {\n function install() {\n if (!ral_1.default.isInstalled()) {\n ral_1.default.install(_ril);\n }\n }\n RIL.install = install;\n})(RIL || (RIL = {}));\nif (!ral_1.default.isInstalled()) {\n ral_1.default.install(_ril);\n}\nexports.default = RIL;\n", "import crypto from 'crypto';\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\nexport default function rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n crypto.randomFillSync(rnds8Pool);\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}", "export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;", "import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;", "import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;", "import rng from './rng.js';\nimport { unsafeStringify } from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || unsafeStringify(b);\n}\n\nexport default v1;", "import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;", "import { unsafeStringify } from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}", "import crypto from 'crypto';\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return crypto.createHash('md5').update(bytes).digest();\n}\n\nexport default md5;", "import v35 from './v35.js';\nimport md5 from './md5.js';\nconst v3 = v35('v3', 0x30, md5);\nexport default v3;", "import crypto from 'crypto';\nexport default {\n randomUUID: crypto.randomUUID\n};", "import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;", "import crypto from 'crypto';\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return crypto.createHash('sha1').update(bytes).digest();\n}\n\nexport default sha1;", "import v35 from './v35.js';\nimport sha1 from './sha1.js';\nconst v5 = v35('v5', 0x50, sha1);\nexport default v5;", "export default '00000000-0000-0000-0000-000000000000';", "import validate from './validate.js';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nexport default version;", "export { default as v1 } from './v1.js';\nexport { default as v3 } from './v3.js';\nexport { default as v4 } from './v4.js';\nexport { default as v5 } from './v5.js';\nexport { default as NIL } from './nil.js';\nexport { default as version } from './version.js';\nexport { default as validate } from './validate.js';\nexport { default as stringify } from './stringify.js';\nexport { default as parse } from './parse.js';", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OptionType = exports.option = exports.EnumType = exports.VariantType = exports.FlagsType = exports.TupleType = exports.RecordType = exports.Float64ArrayType = exports.Float32ArrayType = exports.BigUint64ArrayType = exports.Uint32ArrayType = exports.Uint16ArrayType = exports.Uint8ArrayType = exports.BigInt64ArrayType = exports.Int32ArrayType = exports.Int16ArrayType = exports.Int8ArrayType = exports.ListType = exports.wstring = exports.wchar = exports.ptr = exports.size = exports.byte = exports.float64 = exports.float32 = exports.s64 = exports.s32 = exports.s16 = exports.s8 = exports.u64 = exports.u32 = exports.u16 = exports.u8 = exports.bool = exports.ComponentModelTypeKind = exports.FlatTuple = exports.f64 = exports.f32 = exports.i64 = exports.i32 = exports.FlatTypeKind = exports.Memory = exports.MemoryRange = exports.ReadonlyMemoryRange = exports.BaseMemoryRange = exports.MemoryError = exports.Alignment = exports.ResourceManagers = exports.ResourceManager = exports.ComponentModelTrap = void 0;\nexports.Exports = exports.Module = exports.Imports = exports.Resource = exports.WasmContext = exports.PackageType = exports.InterfaceType = exports.ComponentModelTypeVisitor = exports.OwnType = exports.BorrowType = exports.ResourceType = exports.ResourceHandleType = exports.MethodType = exports.StaticMethodType = exports.DestructorType = exports.ConstructorType = exports.FunctionType = exports.ResultType = exports.result = void 0;\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst ral_1 = __importDefault(require(\"./ral\"));\nconst uuid = __importStar(require(\"uuid\"));\n// Type arrays are store either little or big endian depending on the platform.\n// The component model requires little endian so we throw for now if the platform\n// is big endian. We can alternatively use data views in type arrays component\n// model types to support big endian platforms\nconst isLittleEndian = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\nif (!isLittleEndian) {\n throw new Error('Big endian platforms are currently not supported.');\n}\nclass ComponentModelTrap extends Error {\n constructor(message) {\n super(message);\n }\n}\nexports.ComponentModelTrap = ComponentModelTrap;\nvar ResourceManager;\n(function (ResourceManager) {\n function from(obj) {\n while (obj !== undefined) {\n const self = obj;\n if (typeof self.$drop === 'function' && typeof self.$handle === 'function' && typeof self.$resource === 'function') {\n return self;\n }\n obj = obj.$manager;\n }\n return undefined;\n }\n ResourceManager.from = from;\n class Default {\n h2r;\n handleCounter;\n constructor() {\n this.h2r = new Map();\n this.handleCounter = 1;\n }\n $handle(value) {\n if (value.$handle !== undefined) {\n return value.$handle;\n }\n const handle = this.handleCounter++;\n this.h2r.set(handle, value);\n value.$handle = handle;\n return handle;\n }\n $resource(resource) {\n const value = this.h2r.get(resource);\n if (value === undefined) {\n throw new ComponentModelTrap(`Unknown resource handle ${resource}`);\n }\n return value;\n }\n $drop(resource) {\n this.h2r.delete(resource);\n }\n }\n ResourceManager.Default = Default;\n})(ResourceManager || (exports.ResourceManager = ResourceManager = {}));\nvar ResourceManagers;\n(function (ResourceManagers) {\n class Default {\n managers;\n constructor() {\n this.managers = new Map();\n }\n has(id) {\n return this.managers.has(id);\n }\n set(id, manager) {\n if (this.managers.has(id)) {\n throw new ComponentModelTrap(`Resource manager ${id} already registered.`);\n }\n this.managers.set(id, manager);\n }\n get(id) {\n const manager = this.managers.get(id);\n if (manager === undefined) {\n throw new ComponentModelTrap(`Resource manager ${id} not found.`);\n }\n return manager;\n }\n }\n ResourceManagers.Default = Default;\n})(ResourceManagers || (exports.ResourceManagers = ResourceManagers = {}));\nvar BigInts;\n(function (BigInts) {\n const MAX_VALUE_AS_BIGINT = BigInt(Number.MAX_VALUE);\n function asNumber(value) {\n if (value > MAX_VALUE_AS_BIGINT) {\n throw new ComponentModelTrap('Value too big for number');\n }\n return Number(value);\n }\n BigInts.asNumber = asNumber;\n function max(...args) {\n return args.reduce((m, e) => e > m ? e : m);\n }\n BigInts.max = max;\n function min(...args) {\n return args.reduce((m, e) => e < m ? e : m);\n }\n BigInts.min = min;\n})(BigInts || (BigInts = {}));\nconst utf8Decoder = (0, ral_1.default)().TextDecoder.create('utf-8');\nconst utf8Encoder = (0, ral_1.default)().TextEncoder.create('utf-8');\nvar Alignment;\n(function (Alignment) {\n Alignment[Alignment[\"byte\"] = 1] = \"byte\";\n Alignment[Alignment[\"halfWord\"] = 2] = \"halfWord\";\n Alignment[Alignment[\"word\"] = 4] = \"word\";\n Alignment[Alignment[\"doubleWord\"] = 8] = \"doubleWord\";\n})(Alignment || (exports.Alignment = Alignment = {}));\n(function (Alignment) {\n function align(ptr, alignment) {\n return Math.ceil(ptr / alignment) * alignment;\n }\n Alignment.align = align;\n function getAlignment(ptr) {\n if (ptr % Alignment.doubleWord === 0) {\n return Alignment.doubleWord;\n }\n if (ptr % Alignment.word === 0) {\n return Alignment.word;\n }\n if (ptr % Alignment.halfWord === 0) {\n return Alignment.halfWord;\n }\n return Alignment.byte;\n }\n Alignment.getAlignment = getAlignment;\n})(Alignment || (exports.Alignment = Alignment = {}));\nconst align = Alignment.align;\nclass MemoryError extends Error {\n constructor(message) {\n super(message);\n }\n}\nexports.MemoryError = MemoryError;\nclass BaseMemoryRange {\n _memory;\n _ptr;\n _size;\n _alignment;\n _view;\n constructor(memory, ptr, size) {\n this._memory = memory;\n this._ptr = ptr;\n this._size = size;\n this._alignment = Alignment.getAlignment(ptr);\n }\n get memory() {\n return this._memory;\n }\n get ptr() {\n return this._ptr;\n }\n get size() {\n return this._size;\n }\n get alignment() {\n return this._alignment;\n }\n get view() {\n if (this._view === undefined || this._view.buffer !== this._memory.buffer) {\n this._view = new DataView(this._memory.buffer, this._ptr, this._size);\n }\n return this._view;\n }\n getUint8(offset) {\n return this.view.getUint8(offset);\n }\n getInt8(offset) {\n return this.view.getInt8(offset);\n }\n getUint16(offset) {\n this.assertAlignment(offset, Alignment.halfWord);\n return this.view.getUint16(offset, true);\n }\n getInt16(offset) {\n this.assertAlignment(offset, Alignment.halfWord);\n return this.view.getInt16(offset, true);\n }\n getUint32(offset) {\n this.assertAlignment(offset, Alignment.word);\n return this.view.getUint32(offset, true);\n }\n getInt32(offset) {\n this.assertAlignment(offset, Alignment.word);\n return this.view.getInt32(offset, true);\n }\n getUint64(offset) {\n this.assertAlignment(offset, Alignment.doubleWord);\n return this.view.getBigUint64(offset, true);\n }\n getInt64(offset) {\n this.assertAlignment(offset, Alignment.doubleWord);\n return this.view.getBigInt64(offset, true);\n }\n getFloat32(offset) {\n this.assertAlignment(offset, Alignment.word);\n return this.view.getFloat32(offset, true);\n }\n getFloat64(offset) {\n this.assertAlignment(offset, Alignment.doubleWord);\n return this.view.getFloat64(offset, true);\n }\n getPtr(offset) {\n this.assertAlignment(offset, Alignment.word);\n return this.view.getUint32(offset, true);\n }\n getUint8Array(offset, length) {\n return this.getArray(offset, length, Uint8Array);\n }\n getInt8Array(offset, length) {\n return this.getArray(offset, length, Int8Array);\n }\n getUint16Array(byteOffset, length) {\n return this.getArray(byteOffset, length, Uint16Array);\n }\n getInt16Array(byteOffset, length) {\n return this.getArray(byteOffset, length, Int16Array);\n }\n getUint32Array(byteOffset, length) {\n return this.getArray(byteOffset, length, Uint32Array);\n }\n getInt32Array(byteOffset, length) {\n return this.getArray(byteOffset, length, Int32Array);\n }\n getUint64Array(byteOffset, length) {\n return this.getBigArray(byteOffset, length, BigUint64Array);\n }\n getInt64Array(byteOffset, length) {\n return this.getBigArray(byteOffset, length, BigInt64Array);\n }\n getFloat32Array(byteOffset, length) {\n return this.getArray(byteOffset, length, Float32Array);\n }\n getFloat64Array(byteOffset, length) {\n return this.getArray(byteOffset, length, Float64Array);\n }\n copyBytes(offset, length, into, into_offset) {\n if (offset + length > this.size) {\n throw new MemoryError(`Memory access is out of bounds. Accessing [${offset}, ${length}], allocated[${this.ptr}, ${this.size}]`);\n }\n const target = into.getUint8View(into_offset, length);\n target.set(new Uint8Array(this._memory.buffer, this.ptr + offset, length));\n }\n assertAlignment(offset, alignment) {\n if (alignment > this.alignment || offset % alignment !== 0) {\n throw new MemoryError(`Memory location is not aligned to ${alignment}. Allocated[${this.ptr},${this.size}]`);\n }\n }\n getArray(byteOffset, length, clazz) {\n length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT;\n if (!Number.isInteger(length)) {\n throw new MemoryError(`Length must be an integer value. Got ${length}.`);\n }\n const result = new clazz(length);\n result.set(new clazz(this._memory.buffer, this.ptr + byteOffset, length));\n return result;\n }\n getBigArray(byteOffset, length, clazz) {\n length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT;\n if (!Number.isInteger(length)) {\n throw new MemoryError(`Length must be an integer value. Got ${length}.`);\n }\n const result = new clazz(length);\n result.set(new clazz(this._memory.buffer, this.ptr + byteOffset, length));\n return result;\n }\n}\nexports.BaseMemoryRange = BaseMemoryRange;\nclass ReadonlyMemoryRange extends BaseMemoryRange {\n constructor(memory, ptr, size) {\n super(memory, ptr, size);\n }\n range(offset, size) {\n if (offset + size > this.size) {\n throw new MemoryError(`Memory access is out of bounds. Accessing [${offset}, ${size}], allocated[${this.ptr}, ${this.size}]`);\n }\n return new ReadonlyMemoryRange(this._memory, this.ptr + offset, size);\n }\n}\nexports.ReadonlyMemoryRange = ReadonlyMemoryRange;\nclass MemoryRange extends BaseMemoryRange {\n isAllocated;\n constructor(memory, ptr, size, isPreallocated = false) {\n super(memory, ptr, size);\n this.isAllocated = isPreallocated;\n }\n free() {\n if (typeof this._memory.free !== 'function') {\n throw new MemoryError(`Memory doesn't support free`);\n }\n this._memory.free(this);\n }\n range(offset, size) {\n if (offset + size > this.size) {\n throw new MemoryError(`Memory access is out of bounds. Accessing [${offset}, ${size}], allocated[${this.ptr}, ${this.size}]`);\n }\n return new MemoryRange(this._memory, this.ptr + offset, size);\n }\n setUint8(offset, value) {\n this.view.setUint8(offset, value);\n }\n setInt8(offset, value) {\n this.view.setInt8(offset, value);\n }\n setUint16(offset, value) {\n this.assertAlignment(offset, Alignment.halfWord);\n this.view.setUint16(offset, value, true);\n }\n setInt16(offset, value) {\n this.assertAlignment(offset, Alignment.halfWord);\n this.view.setInt16(offset, value, true);\n }\n setUint32(offset, value) {\n this.assertAlignment(offset, Alignment.word);\n this.view.setUint32(offset, value, true);\n }\n setInt32(offset, value) {\n this.assertAlignment(offset, Alignment.word);\n this.view.setInt32(offset, value, true);\n }\n setUint64(offset, value) {\n this.assertAlignment(offset, Alignment.doubleWord);\n this.view.setBigUint64(offset, value, true);\n }\n setInt64(offset, value) {\n this.assertAlignment(offset, Alignment.doubleWord);\n this.view.setBigInt64(offset, value, true);\n }\n setFloat32(offset, value) {\n this.assertAlignment(offset, Alignment.word);\n this.view.setFloat32(offset, value, true);\n }\n setFloat64(offset, value) {\n this.assertAlignment(offset, Alignment.doubleWord);\n this.view.setFloat64(offset, value, true);\n }\n setPtr(offset, value) {\n this.assertAlignment(offset, Alignment.word);\n this.view.setUint32(offset, value, true);\n }\n getUint8View(offset, length) {\n return this.getArrayView(offset, length, Uint8Array);\n }\n getInt8View(offset, length) {\n return this.getArrayView(offset, length, Int8Array);\n }\n getUint16View(offset, length) {\n return this.getArrayView(offset, length, Uint16Array);\n }\n getInt16View(offset, length) {\n return this.getArrayView(offset, length, Int16Array);\n }\n getUint32View(offset, length) {\n return this.getArrayView(offset, length, Uint32Array);\n }\n getInt32View(offset, length) {\n return this.getArrayView(offset, length, Int32Array);\n }\n getUint64View(offset, length) {\n return this.getBigArrayView(offset, length, BigUint64Array);\n }\n getInt64View(offset, length) {\n return this.getBigArrayView(offset, length, BigInt64Array);\n }\n getFloat32View(offset, length) {\n return this.getArrayView(offset, length, Float32Array);\n }\n getFloat64View(offset, length) {\n return this.getArrayView(offset, length, Float64Array);\n }\n setUint8Array(offset, bytes) {\n this.setArray(offset, bytes, Uint8Array);\n }\n setInt8Array(offset, bytes) {\n this.setArray(offset, bytes, Int8Array);\n }\n setUint16Array(offset, bytes) {\n this.setArray(offset, bytes, Uint16Array);\n }\n setInt16Array(offset, bytes) {\n this.setArray(offset, bytes, Int16Array);\n }\n setUint32Array(offset, bytes) {\n this.setArray(offset, bytes, Uint32Array);\n }\n setInt32Array(offset, bytes) {\n this.setArray(offset, bytes, Int32Array);\n }\n setUint64Array(offset, bytes) {\n this.setBigArray(offset, bytes, BigUint64Array);\n }\n setInt64Array(offset, bytes) {\n this.setBigArray(offset, bytes, BigInt64Array);\n }\n setFloat32Array(offset, bytes) {\n this.setArray(offset, bytes, Float32Array);\n }\n setFloat64Array(offset, bytes) {\n this.setArray(offset, bytes, Float64Array);\n }\n getArrayView(byteOffset, length, clazz) {\n length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT;\n if (!Number.isInteger(length)) {\n throw new MemoryError(`Length must be an integer value. Got ${length}.`);\n }\n return new clazz(this._memory.buffer, this.ptr + byteOffset, length);\n }\n getBigArrayView(byteOffset, length, clazz) {\n length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT;\n if (!Number.isInteger(length)) {\n throw new MemoryError(`Length must be an integer value. Got ${length}.`);\n }\n return new clazz(this._memory.buffer, this.ptr + byteOffset, length);\n }\n setArray(byteOffset, bytes, clazz) {\n new clazz(this._memory.buffer, this.ptr + byteOffset, bytes.length).set(bytes);\n }\n setBigArray(byteOffset, bytes, clazz) {\n new clazz(this._memory.buffer, this.ptr + byteOffset, bytes.length).set(bytes);\n }\n}\nexports.MemoryRange = MemoryRange;\n/**\n * A memory of size 0. Doesn't allow any kind of operation on it.\n */\nclass NullMemory {\n id = 'b60336d2-c856-4767-af3b-f66e1ab6c507';\n buffer = new ArrayBuffer(0);\n alloc() {\n throw new MemoryError('Cannot allocate memory on a null memory.');\n }\n realloc() {\n throw new MemoryError('Cannot re-allocate memory on a null memory.');\n }\n preAllocated() {\n throw new MemoryError('Cannot point to pre-allocate memory on a null memory.');\n }\n readonly() {\n throw new MemoryError('Cannot point to readonly memory on a null memory.');\n }\n free() {\n throw new MemoryError('Cannot free memory on a null memory.');\n }\n}\nvar Memory;\n(function (Memory) {\n Memory.Null = new NullMemory();\n class Default {\n id;\n memory;\n cabi_realloc;\n constructor(exports, id) {\n if (exports.memory === undefined || exports.cabi_realloc === undefined) {\n throw new MemoryError('The exports object must contain a memory object and a cabi_realloc function.');\n }\n this.id = id ?? uuid.v4();\n this.memory = exports.memory;\n this.cabi_realloc = exports.cabi_realloc;\n }\n get buffer() {\n return this.memory.buffer;\n }\n alloc(align, size) {\n const ptr = this.cabi_realloc(0, 0, align, size);\n return new MemoryRange(this, ptr, size);\n }\n realloc(range, newSize) {\n const ptr = this.cabi_realloc(range.ptr, range.size, range.alignment, newSize);\n return new MemoryRange(this, ptr, newSize);\n }\n preAllocated(ptr, size) {\n return new MemoryRange(this, ptr, size);\n }\n readonly(ptr, size) {\n return new ReadonlyMemoryRange(this, ptr, size);\n }\n }\n Memory.Default = Default;\n})(Memory || (exports.Memory = Memory = {}));\nvar FlatTypeKind;\n(function (FlatTypeKind) {\n FlatTypeKind[\"i32\"] = \"i32\";\n FlatTypeKind[\"i64\"] = \"i64\";\n FlatTypeKind[\"f32\"] = \"f32\";\n FlatTypeKind[\"f64\"] = \"f64\";\n})(FlatTypeKind || (exports.FlatTypeKind = FlatTypeKind = {}));\nvar $i32;\n(function ($i32) {\n $i32.kind = FlatTypeKind.i32;\n $i32.size = 4;\n $i32.alignment = Alignment.word;\n function load(memory, offset) {\n return memory.getUint32(offset);\n }\n $i32.load = load;\n function store(memory, offset, value) {\n memory.setUint32(offset, value);\n }\n $i32.store = store;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $i32.alignment);\n src.assertAlignment(src_offset, $i32.alignment);\n src.copyBytes(src_offset, $i32.size, dest, dest_offset);\n }\n $i32.copy = copy;\n})($i32 || ($i32 = {}));\nexports.i32 = $i32;\nvar $i64;\n(function ($i64) {\n $i64.kind = FlatTypeKind.i64;\n $i64.size = 8;\n $i64.alignment = Alignment.doubleWord;\n function load(memory, offset) {\n return memory.getUint64(offset);\n }\n $i64.load = load;\n function store(memory, offset, value) {\n memory.setUint64(offset, value);\n }\n $i64.store = store;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $i64.alignment);\n src.assertAlignment(src_offset, $i64.alignment);\n src.copyBytes(src_offset, $i64.size, dest, dest_offset);\n }\n $i64.copy = copy;\n})($i64 || ($i64 = {}));\nexports.i64 = $i64;\nvar $f32;\n(function ($f32) {\n $f32.kind = FlatTypeKind.f32;\n $f32.size = 4;\n $f32.alignment = Alignment.word;\n function load(memory, offset) {\n return memory.getFloat32(offset);\n }\n $f32.load = load;\n function store(memory, offset, value) {\n memory.setFloat32(offset, value);\n }\n $f32.store = store;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $f32.alignment);\n src.assertAlignment(src_offset, $f32.alignment);\n src.copyBytes(src_offset, $f32.size, dest, dest_offset);\n }\n $f32.copy = copy;\n})($f32 || ($f32 = {}));\nexports.f32 = $f32;\nvar $f64;\n(function ($f64) {\n $f64.kind = FlatTypeKind.f64;\n $f64.size = 8;\n $f64.alignment = Alignment.doubleWord;\n function load(memory, offset) {\n return memory.getFloat64(offset);\n }\n $f64.load = load;\n function store(memory, offset, value) {\n memory.setFloat64(offset, value);\n }\n $f64.store = store;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $f64.alignment);\n src.assertAlignment(src_offset, $f64.alignment);\n src.copyBytes(src_offset, $f64.size, dest, dest_offset);\n }\n $f64.copy = copy;\n})($f64 || ($f64 = {}));\nexports.f64 = $f64;\nclass FlatTuple {\n types;\n alignment;\n size;\n constructor(types) {\n this.types = types;\n this.alignment = FlatTuple.alignment(types);\n this.size = FlatTuple.size(types, this.alignment);\n }\n load(memory, offset) {\n memory.assertAlignment(offset, this.alignment);\n const result = [];\n for (const type of this.types) {\n offset = align(offset, type.alignment);\n result.push(type.load(memory, offset));\n offset += type.size;\n }\n return result;\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memory, offset, values) {\n memory.assertAlignment(offset, this.alignment);\n for (const [index, type] of this.types.entries()) {\n const value = values[index];\n offset = align(offset, type.alignment);\n type.store(memory, offset, value);\n offset += type.size;\n }\n }\n copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, this.alignment);\n src.assertAlignment(src_offset, this.alignment);\n src.copyBytes(src_offset, this.size, dest, dest_offset);\n }\n static alignment(types) {\n let result = Alignment.byte;\n for (const type of types) {\n result = Math.max(result, type.alignment);\n }\n return result;\n }\n static size(types, tupleAlignment) {\n let result = 0;\n for (const type of types) {\n result = align(result, type.alignment);\n result += type.size;\n }\n return align(result, tupleAlignment);\n }\n}\nexports.FlatTuple = FlatTuple;\nvar WasmTypes;\n(function (WasmTypes) {\n const $32 = new DataView(new ArrayBuffer(4));\n const $64 = new DataView(new ArrayBuffer(8));\n function reinterpret_i32_as_f32(i32) {\n $32.setInt32(0, i32, true);\n return $32.getFloat32(0, true);\n }\n WasmTypes.reinterpret_i32_as_f32 = reinterpret_i32_as_f32;\n function reinterpret_f32_as_i32(f32) {\n $32.setFloat32(0, f32, true);\n return $32.getInt32(0, true);\n }\n WasmTypes.reinterpret_f32_as_i32 = reinterpret_f32_as_i32;\n function convert_i64_to_i32(i64) {\n return BigInts.asNumber(i64);\n }\n WasmTypes.convert_i64_to_i32 = convert_i64_to_i32;\n function convert_i32_to_i64(i32) {\n return BigInt(i32);\n }\n WasmTypes.convert_i32_to_i64 = convert_i32_to_i64;\n function reinterpret_i64_as_f32(i64) {\n const i32 = convert_i64_to_i32(i64);\n return reinterpret_i32_as_f32(i32);\n }\n WasmTypes.reinterpret_i64_as_f32 = reinterpret_i64_as_f32;\n function reinterpret_f32_as_i64(f32) {\n const i32 = reinterpret_f32_as_i32(f32);\n return convert_i32_to_i64(i32);\n }\n WasmTypes.reinterpret_f32_as_i64 = reinterpret_f32_as_i64;\n function reinterpret_i64_as_f64(i64) {\n $64.setBigInt64(0, i64, true);\n return $64.getFloat64(0, true);\n }\n WasmTypes.reinterpret_i64_as_f64 = reinterpret_i64_as_f64;\n function reinterpret_f64_as_i64(f64) {\n $64.setFloat64(0, f64, true);\n return $64.getBigInt64(0, true);\n }\n WasmTypes.reinterpret_f64_as_i64 = reinterpret_f64_as_i64;\n})(WasmTypes || (WasmTypes = {}));\nclass CoerceValueIter {\n values;\n haveFlatTypes;\n wantFlatTypes;\n index;\n constructor(values, haveFlatTypes, wantFlatTypes) {\n this.values = values;\n this.haveFlatTypes = haveFlatTypes;\n this.wantFlatTypes = wantFlatTypes;\n if (haveFlatTypes.length < wantFlatTypes.length) {\n throw new ComponentModelTrap(`Invalid coercion: have ${haveFlatTypes.length} values, want ${wantFlatTypes.length} values`);\n }\n this.index = 0;\n }\n next() {\n const value = this.values.next();\n if (value.done) {\n return value;\n }\n const haveType = this.haveFlatTypes[this.index];\n const wantType = this.wantFlatTypes[this.index++];\n if (haveType === $i32 && wantType === $f32) {\n return { done: false, value: WasmTypes.reinterpret_i32_as_f32(value.value) };\n }\n else if (haveType === $i64 && wantType === $i32) {\n return { done: false, value: WasmTypes.convert_i64_to_i32(value.value) };\n }\n else if (haveType === $i64 && wantType === $f32) {\n return { done: false, value: WasmTypes.reinterpret_i64_as_f32(value.value) };\n }\n else if (haveType === $i64 && wantType === $f64) {\n return { done: false, value: WasmTypes.reinterpret_i64_as_f64(value.value) };\n }\n else {\n return value;\n }\n }\n}\nvar ComponentModelTypeKind;\n(function (ComponentModelTypeKind) {\n ComponentModelTypeKind[\"bool\"] = \"bool\";\n ComponentModelTypeKind[\"u8\"] = \"u8\";\n ComponentModelTypeKind[\"u16\"] = \"u16\";\n ComponentModelTypeKind[\"u32\"] = \"u32\";\n ComponentModelTypeKind[\"u64\"] = \"u64\";\n ComponentModelTypeKind[\"s8\"] = \"s8\";\n ComponentModelTypeKind[\"s16\"] = \"s16\";\n ComponentModelTypeKind[\"s32\"] = \"s32\";\n ComponentModelTypeKind[\"s64\"] = \"s64\";\n ComponentModelTypeKind[\"float32\"] = \"float32\";\n ComponentModelTypeKind[\"float64\"] = \"float64\";\n ComponentModelTypeKind[\"char\"] = \"char\";\n ComponentModelTypeKind[\"string\"] = \"string\";\n ComponentModelTypeKind[\"list\"] = \"list\";\n ComponentModelTypeKind[\"record\"] = \"record\";\n ComponentModelTypeKind[\"tuple\"] = \"tuple\";\n ComponentModelTypeKind[\"variant\"] = \"variant\";\n ComponentModelTypeKind[\"enum\"] = \"enum\";\n ComponentModelTypeKind[\"flags\"] = \"flags\";\n ComponentModelTypeKind[\"option\"] = \"option\";\n ComponentModelTypeKind[\"result\"] = \"result\";\n ComponentModelTypeKind[\"resource\"] = \"resource\";\n ComponentModelTypeKind[\"resourceHandle\"] = \"resourceHandle\";\n ComponentModelTypeKind[\"borrow\"] = \"borrow\";\n ComponentModelTypeKind[\"own\"] = \"own\";\n})(ComponentModelTypeKind || (exports.ComponentModelTypeKind = ComponentModelTypeKind = {}));\nexports.bool = {\n kind: ComponentModelTypeKind.bool,\n size: 1,\n alignment: 1,\n flatTypes: [$i32],\n load(memory, offset) {\n return memory.getUint8(offset) !== 0;\n },\n liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < 0) {\n throw new Error(`Invalid bool value ${value}`);\n }\n return value !== 0;\n },\n alloc(memory) {\n return memory.alloc(exports.bool.alignment, exports.bool.size);\n },\n store(memory, offset, value) {\n memory.setUint8(offset, value ? 1 : 0);\n },\n lowerFlat(result, _memory, value) {\n result.push(value ? 1 : 0);\n },\n copy(dest, dest_offset, src, src_offset) {\n src.copyBytes(src_offset, exports.bool.size, dest, dest_offset);\n }\n};\nvar $u8;\n(function ($u8) {\n $u8.kind = ComponentModelTypeKind.u8;\n $u8.size = 1;\n $u8.alignment = Alignment.byte;\n $u8.flatTypes = [$i32];\n $u8.LOW_VALUE = 0;\n $u8.HIGH_VALUE = 255;\n function load(memory, offset) {\n return memory.getUint8(offset);\n }\n $u8.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u8.LOW_VALUE || value > $u8.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u8 value ${value}`);\n }\n return value;\n }\n $u8.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($u8.alignment, $u8.size);\n }\n $u8.alloc = alloc;\n function store(memory, offset, value) {\n memory.setUint8(offset, value);\n }\n $u8.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < $u8.LOW_VALUE || value > $u8.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u8 value ${value}`);\n }\n result.push(value);\n }\n $u8.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n src.copyBytes(src_offset, $u8.size, dest, dest_offset);\n }\n $u8.copy = copy;\n})($u8 || ($u8 = {}));\nexports.u8 = $u8;\nvar $u16;\n(function ($u16) {\n $u16.kind = ComponentModelTypeKind.u16;\n $u16.size = 2;\n $u16.alignment = Alignment.halfWord;\n $u16.flatTypes = [$i32];\n $u16.LOW_VALUE = 0;\n $u16.HIGH_VALUE = 65535;\n function load(memory, offset) {\n return memory.getUint16(offset);\n }\n $u16.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u16.LOW_VALUE || value > $u16.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u16 value ${value}`);\n }\n return value;\n }\n $u16.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($u16.alignment, $u16.size);\n }\n $u16.alloc = alloc;\n function store(memory, offset, value) {\n memory.setUint16(offset, value);\n }\n $u16.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < $u16.LOW_VALUE || value > $u16.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u16 value ${value}`);\n }\n result.push(value);\n }\n $u16.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $u16.alignment);\n src.assertAlignment(src_offset, $u16.alignment);\n src.copyBytes(src_offset, $u16.size, dest, dest_offset);\n }\n $u16.copy = copy;\n})($u16 || ($u16 = {}));\nexports.u16 = $u16;\nvar $u32;\n(function ($u32) {\n $u32.kind = ComponentModelTypeKind.u32;\n $u32.size = 4;\n $u32.alignment = Alignment.word;\n $u32.flatTypes = [$i32];\n $u32.LOW_VALUE = 0;\n $u32.HIGH_VALUE = 4294967295; // 2 ^ 32 - 1\n function valid(value) {\n return value >= $u32.LOW_VALUE && value <= $u32.HIGH_VALUE && Number.isInteger(value);\n }\n $u32.valid = valid;\n function load(memory, offset) {\n return memory.getUint32(offset);\n }\n $u32.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u32.LOW_VALUE || value > $u32.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u32 value ${value}`);\n }\n return value;\n }\n $u32.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($u32.alignment, $u32.size);\n }\n $u32.alloc = alloc;\n function store(memory, offset, value) {\n memory.setUint32(offset, value);\n }\n $u32.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < $u32.LOW_VALUE || value > $u32.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u32 value ${value}`);\n }\n result.push(value);\n }\n $u32.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $u32.alignment);\n src.assertAlignment(src_offset, $u32.alignment);\n src.copyBytes(src_offset, $u32.size, dest, dest_offset);\n }\n $u32.copy = copy;\n})($u32 || ($u32 = {}));\nexports.u32 = $u32;\nvar $u64;\n(function ($u64) {\n $u64.kind = ComponentModelTypeKind.u64;\n $u64.size = 8;\n $u64.alignment = Alignment.doubleWord;\n $u64.flatTypes = [$i64];\n $u64.LOW_VALUE = 0n;\n $u64.HIGH_VALUE = 18446744073709551615n; // 2 ^ 64 - 1\n function load(memory, offset) {\n return memory.getUint64(offset);\n }\n $u64.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u64.LOW_VALUE) {\n throw new Error(`Invalid u64 value ${value}`);\n }\n return value;\n }\n $u64.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($u64.alignment, $u64.size);\n }\n $u64.alloc = alloc;\n function store(memory, offset, value) {\n memory.setUint64(offset, value);\n }\n $u64.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < $u64.LOW_VALUE) {\n throw new Error(`Invalid u64 value ${value}`);\n }\n result.push(value);\n }\n $u64.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $u64.alignment);\n src.assertAlignment(src_offset, $u64.alignment);\n src.copyBytes(src_offset, $u64.size, dest, dest_offset);\n }\n $u64.copy = copy;\n})($u64 || ($u64 = {}));\nexports.u64 = $u64;\nvar $s8;\n(function ($s8) {\n $s8.kind = ComponentModelTypeKind.s8;\n $s8.size = 1;\n $s8.alignment = Alignment.byte;\n $s8.flatTypes = [$i32];\n const LOW_VALUE = -128;\n const HIGH_VALUE = 127;\n function load(memory, offset) {\n return memory.getInt8(offset);\n }\n $s8.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n // All int values in the component model are transferred as unsigned\n // values. So for signed values we need to convert them back. First\n // we check if the value is in range of the corresponding unsigned\n // value and the convert it to a signed value.\n if (value < $u8.LOW_VALUE || value > $u8.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u8 value ${value}`);\n }\n if (value <= HIGH_VALUE) {\n return value;\n }\n else {\n return value - 256;\n }\n }\n $s8.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($s8.alignment, $s8.size);\n }\n $s8.alloc = alloc;\n function store(memory, offset, value) {\n memory.setInt8(offset, value);\n }\n $s8.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < LOW_VALUE || value > HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid s8 value ${value}`);\n }\n result.push((value < 0) ? (value + 256) : value);\n }\n $s8.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $s8.alignment);\n src.assertAlignment(src_offset, $s8.alignment);\n src.copyBytes(src_offset, $s8.size, dest, dest_offset);\n }\n $s8.copy = copy;\n})($s8 || ($s8 = {}));\nexports.s8 = $s8;\nvar $s16;\n(function ($s16) {\n $s16.kind = ComponentModelTypeKind.s16;\n $s16.size = 2;\n $s16.alignment = Alignment.halfWord;\n $s16.flatTypes = [$i32];\n const LOW_VALUE = -32768; // -2 ^ 15\n const HIGH_VALUE = 32767; // 2 ^ 15 - 1\n function load(memory, offset) {\n return memory.getInt16(offset);\n }\n $s16.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u16.LOW_VALUE || value > $u16.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid s16 value ${value}`);\n }\n return (value <= HIGH_VALUE) ? value : value - 65536;\n }\n $s16.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($s16.alignment, $s16.size);\n }\n $s16.alloc = alloc;\n function store(memory, offset, value) {\n memory.setInt16(offset, value);\n }\n $s16.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < LOW_VALUE || value > HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid s16 value ${value}`);\n }\n result.push((value < 0) ? (value + 65536) : value);\n }\n $s16.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $s16.alignment);\n src.assertAlignment(src_offset, $s16.alignment);\n src.copyBytes(src_offset, $s16.size, dest, dest_offset);\n }\n $s16.copy = copy;\n})($s16 || ($s16 = {}));\nexports.s16 = $s16;\nvar $s32;\n(function ($s32) {\n $s32.kind = ComponentModelTypeKind.s32;\n $s32.size = 4;\n $s32.alignment = Alignment.word;\n $s32.flatTypes = [$i32];\n const LOW_VALUE = -2147483648; // -2 ^ 31\n const HIGH_VALUE = 2147483647; // 2 ^ 31 - 1\n function load(memory, offset) {\n return memory.getInt32(offset);\n }\n $s32.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u32.LOW_VALUE || value > $u32.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid s32 value ${value}`);\n }\n return (value <= HIGH_VALUE) ? value : value - 4294967296;\n }\n $s32.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($s32.alignment, $s32.size);\n }\n $s32.alloc = alloc;\n function store(memory, offset, value) {\n memory.setInt32(offset, value);\n }\n $s32.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < LOW_VALUE || value > HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid s32 value ${value}`);\n }\n result.push((value < 0) ? (value + 4294967296) : value);\n }\n $s32.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $s32.alignment);\n src.assertAlignment(src_offset, $s32.alignment);\n src.copyBytes(src_offset, $s32.size, dest, dest_offset);\n }\n $s32.copy = copy;\n})($s32 || ($s32 = {}));\nexports.s32 = $s32;\nvar $s64;\n(function ($s64) {\n $s64.kind = ComponentModelTypeKind.s64;\n $s64.size = 8;\n $s64.alignment = Alignment.doubleWord;\n $s64.flatTypes = [$i64];\n const LOW_VALUE = -9223372036854775808n; // -2 ^ 63\n const HIGH_VALUE = 9223372036854775807n; // 2 ^ 63 - 1\n function load(memory, offset) {\n return memory.getInt64(offset);\n }\n $s64.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u64.LOW_VALUE) {\n throw new Error(`Invalid s64 value ${value}`);\n }\n return (value <= HIGH_VALUE) ? value : value - 18446744073709551616n;\n }\n $s64.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($s64.alignment, $s64.size);\n }\n $s64.alloc = alloc;\n function store(memory, offset, value) {\n memory.setInt64(offset, value);\n }\n $s64.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < LOW_VALUE || value > HIGH_VALUE) {\n throw new Error(`Invalid s64 value ${value}`);\n }\n result.push((value < 0) ? (value + 18446744073709551616n) : value);\n }\n $s64.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $s64.alignment);\n src.assertAlignment(src_offset, $s64.alignment);\n src.copyBytes(src_offset, $s64.size, dest, dest_offset);\n }\n $s64.copy = copy;\n})($s64 || ($s64 = {}));\nexports.s64 = $s64;\nvar $float32;\n(function ($float32) {\n $float32.kind = ComponentModelTypeKind.float32;\n $float32.size = 4;\n $float32.alignment = Alignment.word;\n $float32.flatTypes = [$f32];\n const LOW_VALUE = -3.4028234663852886e+38;\n const HIGH_VALUE = 3.4028234663852886e+38;\n const NAN = 0x7fc00000;\n function load(memory, offset) {\n return memory.getFloat32(offset);\n }\n $float32.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < LOW_VALUE || value > HIGH_VALUE) {\n throw new Error(`Invalid float32 value ${value}`);\n }\n return value === NAN ? Number.NaN : value;\n }\n $float32.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($float32.alignment, $float32.size);\n }\n $float32.alloc = alloc;\n function store(memory, offset, value) {\n memory.setFloat32(offset, value);\n }\n $float32.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < LOW_VALUE || value > HIGH_VALUE) {\n throw new Error(`Invalid float32 value ${value}`);\n }\n result.push(Number.isNaN(value) ? NAN : value);\n }\n $float32.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $float32.alignment);\n src.assertAlignment(src_offset, $float32.alignment);\n src.copyBytes(src_offset, $float32.size, dest, dest_offset);\n }\n $float32.copy = copy;\n})($float32 || ($float32 = {}));\nexports.float32 = $float32;\nvar $float64;\n(function ($float64) {\n $float64.kind = ComponentModelTypeKind.float64;\n $float64.size = 8;\n $float64.alignment = Alignment.doubleWord;\n $float64.flatTypes = [$f64];\n const LOW_VALUE = -1 * Number.MAX_VALUE;\n const HIGH_VALUE = Number.MAX_VALUE;\n const NAN = 0x7ff8000000000000;\n function load(memory, offset) {\n return memory.getFloat64(offset);\n }\n $float64.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < LOW_VALUE || value > HIGH_VALUE) {\n throw new Error(`Invalid float64 value ${value}`);\n }\n return value === NAN ? Number.NaN : value;\n }\n $float64.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($float64.alignment, $float64.size);\n }\n $float64.alloc = alloc;\n function store(memory, offset, value) {\n memory.setFloat64(offset, value);\n }\n $float64.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < LOW_VALUE || value > HIGH_VALUE) {\n throw new Error(`Invalid float64 value ${value}`);\n }\n result.push(Number.isNaN(value) ? NAN : value);\n }\n $float64.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $float64.alignment);\n src.assertAlignment(src_offset, $float64.alignment);\n src.copyBytes(src_offset, $float64.size, dest, dest_offset);\n }\n $float64.copy = copy;\n})($float64 || ($float64 = {}));\nexports.float64 = $float64;\nexports.byte = {\n kind: exports.u8.kind,\n size: exports.u8.size,\n alignment: exports.u8.alignment,\n flatTypes: exports.u8.flatTypes,\n load: exports.u8.load,\n liftFlat: exports.u8.liftFlat,\n alloc: exports.u8.alloc,\n store: exports.u8.store,\n lowerFlat: exports.u8.lowerFlat,\n copy: exports.u8.copy\n};\nexports.size = {\n kind: exports.u32.kind,\n size: exports.u32.size,\n alignment: exports.u32.alignment,\n flatTypes: exports.u32.flatTypes,\n load: exports.u32.load,\n liftFlat: exports.u32.liftFlat,\n alloc: exports.u32.alloc,\n store: exports.u32.store,\n lowerFlat: exports.u32.lowerFlat,\n copy: exports.u32.copy\n};\nexports.ptr = {\n kind: exports.u32.kind,\n size: exports.u32.size,\n alignment: exports.u32.alignment,\n flatTypes: exports.u32.flatTypes,\n load: exports.u32.load,\n liftFlat: exports.u32.liftFlat,\n alloc: exports.u32.alloc,\n store: exports.u32.store,\n lowerFlat: exports.u32.lowerFlat,\n copy: exports.u32.copy\n};\nvar $wchar;\n(function ($wchar) {\n $wchar.kind = ComponentModelTypeKind.char;\n $wchar.size = 4;\n $wchar.alignment = Alignment.word;\n $wchar.flatTypes = [$i32];\n function load(memory, offset, context) {\n return fromCodePoint(exports.u32.load(memory, offset, context));\n }\n $wchar.load = load;\n function liftFlat(memory, values, context) {\n return fromCodePoint(exports.u32.liftFlat(memory, values, context));\n }\n $wchar.liftFlat = liftFlat;\n function alloc(memory) {\n return exports.u32.alloc(memory);\n }\n $wchar.alloc = alloc;\n function store(memory, offset, value, context) {\n exports.u32.store(memory, offset, asCodePoint(value), context);\n }\n $wchar.store = store;\n function lowerFlat(result, memory, value, context) {\n exports.u32.lowerFlat(result, memory, asCodePoint(value), context);\n }\n $wchar.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $wchar.alignment);\n src.assertAlignment(src_offset, $wchar.alignment);\n src.copyBytes(src_offset, $wchar.size, dest, dest_offset);\n }\n $wchar.copy = copy;\n function fromCodePoint(code) {\n if (code >= 0x110000 || (0xD800 <= code && code <= 0xDFFF)) {\n throw new ComponentModelTrap('Invalid code point');\n }\n return String.fromCodePoint(code);\n }\n function asCodePoint(str) {\n if (str.length !== 1) {\n throw new ComponentModelTrap('String length must be 1');\n }\n const code = str.codePointAt(0);\n if (!(code <= 0xD7FF || (0xD800 <= code && code <= 0x10FFFF))) {\n throw new ComponentModelTrap('Invalid code point');\n }\n return code;\n }\n})($wchar || ($wchar = {}));\nexports.wchar = $wchar;\nvar $wstring;\n(function ($wstring) {\n const offsets = {\n data: 0,\n codeUnits: 4\n };\n $wstring.kind = ComponentModelTypeKind.string;\n $wstring.size = 8;\n $wstring.alignment = Alignment.word;\n $wstring.flatTypes = [$i32, $i32];\n function load(memRange, offset, context) {\n const dataPtr = memRange.getUint32(offset + offsets.data);\n const codeUnits = memRange.getUint32(offset + offsets.codeUnits);\n return loadFromRange(memRange.memory, dataPtr, codeUnits, context.options);\n }\n $wstring.load = load;\n function liftFlat(memory, values, context) {\n const dataPtr = values.next().value;\n const codeUnits = values.next().value;\n return loadFromRange(memory, dataPtr, codeUnits, context.options);\n }\n $wstring.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($wstring.alignment, $wstring.size);\n }\n $wstring.alloc = alloc;\n function store(memory, offset, str, context) {\n const [ptr, codeUnits] = storeIntoRange(memory.memory, str, context.options);\n memory.setUint32(offset + offsets.data, ptr);\n memory.setUint32(offset + offsets.codeUnits, codeUnits);\n }\n $wstring.store = store;\n function lowerFlat(result, memory, str, context) {\n result.push(...storeIntoRange(memory, str, context.options));\n }\n $wstring.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset, context) {\n dest.assertAlignment(dest_offset, $wstring.alignment);\n src.assertAlignment(src_offset, $wstring.alignment);\n src.copyBytes(src_offset, $wstring.size, dest, dest_offset);\n const data = src.getUint32(src_offset + offsets.data);\n const codeUnits = src.getUint32(src_offset + offsets.codeUnits);\n const [alignment, byteLength] = getAlignmentAndByteLength(codeUnits, context.options);\n const srcReader = src.memory.readonly(data, byteLength);\n const destWriter = dest.memory.alloc(alignment, byteLength);\n srcReader.copyBytes(0, byteLength, destWriter, 0);\n }\n $wstring.copy = copy;\n function getAlignmentAndByteLength(codeUnits, options) {\n const encoding = options.encoding;\n if (encoding === 'latin1+utf-16') {\n throw new Error('latin1+utf-16 encoding not yet supported');\n }\n if (encoding === 'utf-8') {\n return [exports.u8.alignment, codeUnits];\n }\n else if (encoding === 'utf-16') {\n return [exports.u16.alignment, codeUnits * 2];\n }\n else {\n throw new Error('Unsupported encoding');\n }\n }\n $wstring.getAlignmentAndByteLength = getAlignmentAndByteLength;\n function loadFromRange(memory, data, codeUnits, options) {\n const encoding = options.encoding;\n if (encoding === 'latin1+utf-16') {\n throw new Error('latin1+utf-16 encoding not yet supported');\n }\n if (encoding === 'utf-8') {\n const byteLength = codeUnits;\n const reader = memory.readonly(data, byteLength);\n return utf8Decoder.decode(reader.getUint8Array(0, byteLength));\n }\n else if (encoding === 'utf-16') {\n const reader = memory.readonly(data, codeUnits * 2);\n return String.fromCharCode(...reader.getUint16Array(data, codeUnits));\n }\n else {\n throw new Error('Unsupported encoding');\n }\n }\n function storeIntoRange(memory, str, options) {\n const { encoding } = options;\n if (encoding === 'latin1+utf-16') {\n throw new Error('latin1+utf-16 encoding not yet supported');\n }\n if (encoding === 'utf-8') {\n const data = utf8Encoder.encode(str);\n const writer = memory.alloc(exports.u8.alignment, data.length);\n writer.setUint8Array(0, data);\n return [writer.ptr, data.length];\n }\n else if (encoding === 'utf-16') {\n const writer = memory.alloc(exports.u16.alignment, str.length * 2);\n const data = writer.getUint16View(0);\n for (let i = 0; i < str.length; i++) {\n data[i] = str.charCodeAt(i);\n }\n return [writer.ptr, data.length];\n }\n else {\n throw new Error('Unsupported encoding');\n }\n }\n})($wstring || ($wstring = {}));\nexports.wstring = $wstring;\nclass ListType {\n static offsets = {\n data: 0,\n length: 4\n };\n elementType;\n kind;\n size;\n alignment;\n flatTypes;\n constructor(elementType) {\n this.elementType = elementType;\n this.kind = ComponentModelTypeKind.list;\n this.size = 8;\n this.alignment = Alignment.word;\n this.flatTypes = [$i32, $i32];\n }\n load(memRange, offset, context) {\n const offsets = ListType.offsets;\n const dataPtr = memRange.getUint32(offset + offsets.data);\n const length = memRange.getUint32(offset + offsets.length);\n return this.loadFromRange(memRange.memory.readonly(dataPtr, length * this.elementType.size), length, context);\n }\n liftFlat(memory, values, context) {\n const dataPtr = values.next().value;\n const length = values.next().value;\n return this.loadFromRange(memory.readonly(dataPtr, length * this.elementType.size), length, context);\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memRange, offset, values, context) {\n const elementMemory = memRange.memory.alloc(this.elementType.alignment, this.elementType.size * values.length);\n this.storeIntoRange(elementMemory, values, context);\n const offsets = ListType.offsets;\n memRange.setUint32(offset + offsets.data, elementMemory.ptr);\n memRange.setUint32(offset + offsets.length, values.length);\n }\n lowerFlat(result, memory, values, context) {\n const elementMemory = memory.alloc(this.elementType.alignment, this.elementType.size * values.length);\n this.storeIntoRange(elementMemory, values, context);\n result.push(elementMemory.ptr, values.length);\n }\n copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, this.alignment);\n src.assertAlignment(src_offset, this.alignment);\n const offsets = ListType.offsets;\n src.copyBytes(src_offset, this.size, dest, dest_offset);\n const data = src.getUint32(src_offset + offsets.data);\n const byteLength = src.getUint32(src_offset + offsets.length) * this.elementType.size;\n const srcReader = src.memory.readonly(data, byteLength);\n const destWriter = dest.memory.alloc(this.elementType.alignment, byteLength);\n srcReader.copyBytes(0, byteLength, destWriter, 0);\n }\n loadFromRange(memory, length, context) {\n const result = [];\n let offset = 0;\n for (let i = 0; i < length; i++) {\n result.push(this.elementType.load(memory, offset, context));\n offset += this.elementType.size;\n }\n return result;\n }\n storeIntoRange(memory, values, context) {\n let offset = 0;\n for (const item of values) {\n this.elementType.store(memory, offset, item, context);\n offset += this.elementType.size;\n }\n }\n}\nexports.ListType = ListType;\nclass TypeArrayType {\n static offsets = {\n data: 0,\n length: 4\n };\n kind;\n size;\n alignment;\n flatTypes;\n elementType;\n constructor(elementType) {\n this.kind = ComponentModelTypeKind.list;\n this.size = 8;\n this.alignment = 4;\n this.flatTypes = [$i32, $i32];\n this.elementType = elementType;\n }\n load(memRange, offset) {\n const offsets = TypeArrayType.offsets;\n const dataPtr = memRange.getUint32(offset + offsets.data);\n const length = memRange.getUint32(offset + offsets.length);\n return this.loadFromRange(memRange.memory.readonly(dataPtr, length * this.elementType.size), length);\n }\n liftFlat(memory, values) {\n const dataPtr = values.next().value;\n const length = values.next().value;\n return this.loadFromRange(memory.readonly(dataPtr, length * this.elementType.size), length);\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memRange, offset, value) {\n const writer = memRange.memory.alloc(this.elementType.alignment, value.byteLength);\n this.storeIntoRange(writer, value);\n const offsets = TypeArrayType.offsets;\n memRange.setUint32(offset + offsets.data, writer.ptr);\n memRange.setUint32(offset + offsets.length, value.length);\n }\n lowerFlat(result, memory, value) {\n const writer = memory.alloc(this.elementType.alignment, value.byteLength);\n this.storeIntoRange(writer, value);\n result.push(writer.ptr, value.length);\n }\n copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, this.alignment);\n src.assertAlignment(src_offset, this.alignment);\n const offsets = TypeArrayType.offsets;\n src.copyBytes(src_offset, this.size, dest, dest_offset);\n const data = src.getUint32(src_offset + offsets.data);\n const byteLength = src.getUint32(src_offset + offsets.length) * this.elementType.size;\n const srcReader = src.memory.readonly(data, byteLength);\n const destWriter = dest.memory.alloc(this.elementType.alignment, byteLength);\n srcReader.copyBytes(0, byteLength, destWriter, 0);\n }\n}\nclass Int8ArrayType extends TypeArrayType {\n constructor() {\n super($s8);\n }\n loadFromRange(memory, length) {\n return memory.getInt8Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setInt8Array(0, value);\n }\n}\nexports.Int8ArrayType = Int8ArrayType;\nclass Int16ArrayType extends TypeArrayType {\n constructor() {\n super($s16);\n }\n loadFromRange(memory, length) {\n return memory.getInt16Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setInt16Array(0, value);\n }\n}\nexports.Int16ArrayType = Int16ArrayType;\nclass Int32ArrayType extends TypeArrayType {\n constructor() {\n super($s32);\n }\n loadFromRange(memory, length) {\n return memory.getInt32Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setInt32Array(0, value);\n }\n}\nexports.Int32ArrayType = Int32ArrayType;\nclass BigInt64ArrayType extends TypeArrayType {\n constructor() {\n super($s64);\n }\n loadFromRange(memory, length) {\n return memory.getInt64Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setInt64Array(0, value);\n }\n}\nexports.BigInt64ArrayType = BigInt64ArrayType;\nclass Uint8ArrayType extends TypeArrayType {\n constructor() {\n super($u8);\n }\n loadFromRange(memory, length) {\n return memory.getUint8Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setUint8Array(0, value);\n }\n}\nexports.Uint8ArrayType = Uint8ArrayType;\nclass Uint16ArrayType extends TypeArrayType {\n constructor() {\n super($u16);\n }\n loadFromRange(memory, length) {\n return memory.getUint16Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setUint16Array(0, value);\n }\n}\nexports.Uint16ArrayType = Uint16ArrayType;\nclass Uint32ArrayType extends TypeArrayType {\n constructor() {\n super($u32);\n }\n loadFromRange(memory, length) {\n return memory.getUint32Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setUint32Array(0, value);\n }\n}\nexports.Uint32ArrayType = Uint32ArrayType;\nclass BigUint64ArrayType extends TypeArrayType {\n constructor() {\n super($u64);\n }\n loadFromRange(memory, length) {\n return memory.getUint64Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setUint64Array(0, value);\n }\n}\nexports.BigUint64ArrayType = BigUint64ArrayType;\nclass Float32ArrayType extends TypeArrayType {\n constructor() {\n super($float32);\n }\n loadFromRange(memory, length) {\n return memory.getFloat32Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setFloat32Array(0, value);\n }\n}\nexports.Float32ArrayType = Float32ArrayType;\nclass Float64ArrayType extends TypeArrayType {\n constructor() {\n super($float64);\n }\n loadFromRange(memory, length) {\n return memory.getFloat64Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setFloat64Array(0, value);\n }\n}\nexports.Float64ArrayType = Float64ArrayType;\nclass BaseRecordType {\n fields;\n kind;\n size;\n alignment;\n flatTypes;\n constructor(fields, kind) {\n this.fields = fields;\n this.kind = kind;\n this.alignment = BaseRecordType.alignment(fields);\n this.size = BaseRecordType.size(fields, this.alignment);\n this.flatTypes = BaseRecordType.flatTypes(fields);\n }\n load(memory, offset, context) {\n memory.assertAlignment(offset, this.alignment);\n const result = [];\n for (const field of this.fields) {\n offset = align(offset, field.type.alignment);\n result.push(field.type.load(memory, offset, context));\n offset += field.type.size;\n }\n return this.create(this.fields, result);\n }\n liftFlat(memory, values, context) {\n const result = [];\n for (const field of this.fields) {\n result.push(field.type.liftFlat(memory, values, context));\n }\n return this.create(this.fields, result);\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memory, offset, record, context) {\n memory.assertAlignment(offset, this.alignment);\n const values = this.elements(record, this.fields);\n for (let i = 0; i < this.fields.length; i++) {\n const field = this.fields[i];\n const value = values[i];\n offset = align(offset, field.type.alignment);\n field.type.store(memory, offset, value, context);\n offset += field.type.size;\n }\n }\n lowerFlat(result, memory, record, context) {\n const values = this.elements(record, this.fields);\n for (let i = 0; i < this.fields.length; i++) {\n const field = this.fields[i];\n const value = values[i];\n field.type.lowerFlat(result, memory, value, context);\n }\n }\n copy(dest, dest_offset, src, src_offset, context) {\n for (const field of this.fields) {\n dest_offset = align(dest_offset, field.type.alignment);\n src_offset = align(src_offset, field.type.alignment);\n field.type.copy(dest, dest_offset, src, src_offset, context);\n dest_offset += field.type.size;\n src_offset += field.type.size;\n }\n }\n static size(fields, recordAlignment) {\n let result = 0;\n for (const field of fields) {\n result = align(result, field.type.alignment);\n result += field.type.size;\n }\n return align(result, recordAlignment);\n }\n static alignment(fields) {\n let result = 1;\n for (const field of fields) {\n result = Math.max(result, field.type.alignment);\n }\n return result;\n }\n static flatTypes(fields) {\n const result = [];\n for (const field of fields) {\n result.push(...field.type.flatTypes);\n }\n return result;\n }\n}\nvar RecordField;\n(function (RecordField) {\n function create(name, type) {\n return { name, type };\n }\n RecordField.create = create;\n})(RecordField || (RecordField = {}));\nclass RecordType extends BaseRecordType {\n constructor(fields) {\n const recordFields = [];\n for (const [name, type] of fields) {\n recordFields.push(RecordField.create(name, type));\n }\n super(recordFields, ComponentModelTypeKind.record);\n }\n create(fields, values) {\n const result = {};\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i];\n const value = values[i];\n result[field.name] = value;\n }\n return result;\n }\n elements(record, fields) {\n const result = [];\n for (const field of fields) {\n const value = record[field.name];\n result.push(value);\n }\n return result;\n }\n}\nexports.RecordType = RecordType;\nvar TupleField;\n(function (TupleField) {\n function create(type) {\n return { type };\n }\n TupleField.create = create;\n})(TupleField || (TupleField = {}));\nclass TupleType extends BaseRecordType {\n constructor(fields) {\n const tupleFields = [];\n for (const type of fields) {\n tupleFields.push(TupleField.create(type));\n }\n super(tupleFields, ComponentModelTypeKind.tuple);\n }\n create(_fields, values) {\n return values;\n }\n elements(record, _fields) {\n return record;\n }\n}\nexports.TupleType = TupleType;\nclass FlagsType {\n type;\n arraySize;\n kind;\n size;\n alignment;\n flatTypes;\n constructor(numberOfFlags) {\n this.kind = ComponentModelTypeKind.flags;\n this.size = FlagsType.size(numberOfFlags);\n this.alignment = FlagsType.alignment(numberOfFlags);\n this.flatTypes = FlagsType.flatTypes(numberOfFlags);\n this.type = FlagsType.getType(numberOfFlags);\n this.arraySize = FlagsType.num32Flags(numberOfFlags);\n }\n load(memory, offset, context) {\n return this.type === undefined ? 0 : this.loadFrom(this.type.load(memory, offset, context));\n }\n liftFlat(memory, values, context) {\n return this.type === undefined ? 0 : this.loadFrom(this.type.liftFlat(memory, values, context));\n }\n loadFrom(value) {\n if (typeof value === 'number') {\n return value;\n }\n else {\n let result = 0n;\n for (let f = 0, i = value.length - 1; f < value.length; f++, i--) {\n const bits = value[i];\n result = result | (BigInt(bits) << BigInt(f * 32));\n }\n return result;\n }\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memory, offset, flags, context) {\n if (this.type !== undefined) {\n this.type.store(memory, offset, this.storeInto(flags), context);\n }\n }\n lowerFlat(result, _memory, flags, context) {\n if (this.type !== undefined) {\n this.type.lowerFlat(result, _memory, this.storeInto(flags), context);\n }\n }\n copy(dest, dest_offset, src, src_offset, context) {\n if (this.type !== undefined) {\n this.type.copy(dest, dest_offset, src, src_offset, context);\n }\n }\n storeInto(value) {\n if (typeof value === 'number') {\n return value;\n }\n else {\n const result = new Array(this.arraySize).fill(0);\n for (let f = 0, i = result.length - 1; f < result.length; f++, i--) {\n const bits = Number((value >> BigInt(f * 32)) & BigInt(0xffffffff));\n result[i] = bits;\n }\n return result;\n }\n }\n static size(numberOfFlags) {\n if (numberOfFlags === 0) {\n return 0;\n }\n else if (numberOfFlags <= 8) {\n return 1;\n }\n else if (numberOfFlags <= 16) {\n return 2;\n }\n else {\n return 4 * this.num32Flags(numberOfFlags);\n }\n }\n static alignment(numberOfFlags) {\n if (numberOfFlags <= 8) {\n return 1;\n }\n else if (numberOfFlags <= 16) {\n return 2;\n }\n else {\n return 4;\n }\n }\n static getType(numberOfFlags) {\n if (numberOfFlags === 0) {\n return undefined;\n }\n else if (numberOfFlags <= 8) {\n return exports.u8;\n }\n else if (numberOfFlags <= 16) {\n return exports.u16;\n }\n else if (numberOfFlags <= 32) {\n return exports.u32;\n }\n else {\n return new TupleType(new Array(this.num32Flags(numberOfFlags)).fill(exports.u32));\n }\n }\n static flatTypes(numberOfFlags) {\n return new Array(this.num32Flags(numberOfFlags)).fill($i32);\n }\n static num32Flags(numberOfFlags) {\n return Math.ceil(numberOfFlags / 32);\n }\n}\nexports.FlagsType = FlagsType;\nvar VariantCase;\n(function (VariantCase) {\n function create(index, tag, type) {\n return { index, tag, type, wantFlatTypes: type !== undefined ? [] : undefined };\n }\n VariantCase.create = create;\n})(VariantCase || (VariantCase = {}));\nclass VariantType {\n cases;\n case2Index;\n ctor;\n discriminantType;\n maxCaseAlignment;\n kind;\n size;\n alignment;\n flatTypes;\n constructor(variants, ctor, kind = ComponentModelTypeKind.variant) {\n const cases = [];\n this.case2Index = new Map();\n for (let i = 0; i < variants.length; i++) {\n const type = variants[i][1];\n const name = variants[i][0];\n this.case2Index.set(name, i);\n cases.push(VariantCase.create(i, name, type));\n }\n this.cases = cases;\n this.ctor = ctor;\n this.discriminantType = VariantType.discriminantType(cases.length);\n this.maxCaseAlignment = VariantType.maxCaseAlignment(cases);\n this.kind = kind;\n this.size = VariantType.size(this.discriminantType, cases);\n this.alignment = VariantType.alignment(this.discriminantType, cases);\n this.flatTypes = VariantType.flatTypes(this.discriminantType, cases);\n }\n load(memory, offset, context) {\n const caseIndex = this.discriminantType.load(memory, offset, context);\n const caseVariant = this.cases[caseIndex];\n if (caseVariant.type === undefined) {\n return this.ctor(caseVariant.tag, undefined);\n }\n else {\n offset += this.discriminantType.size;\n offset = align(offset, this.maxCaseAlignment);\n const value = caseVariant.type.load(memory, offset, context);\n return this.ctor(caseVariant.tag, value);\n }\n }\n liftFlat(memory, values, context) {\n // First one is the discriminant type. So skip it.\n let valuesToReadOver = this.flatTypes.length - 1;\n const caseIndex = this.discriminantType.liftFlat(memory, values, context);\n const caseVariant = this.cases[caseIndex];\n let result;\n if (caseVariant.type === undefined) {\n result = this.ctor(caseVariant.tag, undefined);\n }\n else {\n // The first flat type is the discriminant type. So skip it.\n const wantFlatTypes = caseVariant.wantFlatTypes;\n const iter = new CoerceValueIter(values, this.flatTypes.slice(1), wantFlatTypes);\n const value = caseVariant.type.liftFlat(memory, iter, context);\n result = this.ctor(caseVariant.tag, value);\n valuesToReadOver = valuesToReadOver - wantFlatTypes.length;\n }\n for (let i = 0; i < valuesToReadOver; i++) {\n values.next();\n }\n return result;\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memory, offset, variantValue, context) {\n const index = this.case2Index.get(variantValue.tag);\n if (index === undefined) {\n throw new ComponentModelTrap(`Variant case ${variantValue.tag} not found`);\n }\n this.discriminantType.store(memory, offset, index, context);\n offset += this.discriminantType.size;\n const c = this.cases[index];\n if (c.type !== undefined && variantValue.value !== undefined) {\n offset = align(offset, this.maxCaseAlignment);\n c.type.store(memory, offset, variantValue.value, context);\n }\n }\n lowerFlat(result, memory, variantValue, context) {\n const flatTypes = this.flatTypes;\n const index = this.case2Index.get(variantValue.tag);\n if (index === undefined) {\n throw new ComponentModelTrap(`Variant case ${variantValue.tag} not found`);\n }\n this.discriminantType.lowerFlat(result, memory, index, context);\n const c = this.cases[index];\n // First one is the discriminant type. So skip it.\n let valuesToFill = this.flatTypes.length - 1;\n if (c.type !== undefined && variantValue.value !== undefined) {\n const payload = [];\n c.type.lowerFlat(payload, memory, variantValue.value, context);\n // First one is the discriminant type. So skip it.\n const wantTypes = flatTypes.slice(1);\n const haveTypes = c.wantFlatTypes;\n if (payload.length !== haveTypes.length) {\n throw new ComponentModelTrap('Mismatched flat types');\n }\n for (let i = 0; i < wantTypes.length; i++) {\n const have = haveTypes[i];\n const want = wantTypes[i];\n if (have === $f32 && want === $i32) {\n payload[i] = WasmTypes.reinterpret_f32_as_i32(payload[i]);\n }\n else if (have === $i32 && want === $i64) {\n payload[i] = WasmTypes.convert_i32_to_i64(payload[i]);\n }\n else if (have === $f32 && want === $i64) {\n payload[i] = WasmTypes.reinterpret_f32_as_i64(payload[i]);\n }\n else if (have === $f64 && want === $i64) {\n payload[i] = WasmTypes.reinterpret_f64_as_i64(payload[i]);\n }\n }\n valuesToFill = valuesToFill - payload.length;\n result.push(...payload);\n }\n for (let i = flatTypes.length - valuesToFill; i < flatTypes.length; i++) {\n const type = flatTypes[i];\n if (type === $i64) {\n result.push(0n);\n }\n else {\n result.push(0);\n }\n }\n }\n copy(dest, dest_offset, src, src_offset, context) {\n this.discriminantType.copy(dest, dest_offset, src, src_offset, context);\n const caseIndex = this.discriminantType.load(src, src_offset, context);\n const caseVariant = this.cases[caseIndex];\n if (caseVariant.type === undefined) {\n return;\n }\n src_offset += this.discriminantType.size;\n src_offset = align(src_offset, this.maxCaseAlignment);\n dest_offset += this.discriminantType.size;\n dest_offset = align(dest_offset, this.maxCaseAlignment);\n caseVariant.type.copy(dest, dest_offset, src, src_offset, context);\n }\n static size(discriminantType, cases) {\n let result = discriminantType.size;\n result = align(result, this.maxCaseAlignment(cases));\n return result + this.maxCaseSize(cases);\n }\n static alignment(discriminantType, cases) {\n return Math.max(discriminantType.alignment, this.maxCaseAlignment(cases));\n }\n static flatTypes(discriminantType, cases) {\n const flat = [];\n for (const c of cases) {\n if (c.type === undefined) {\n continue;\n }\n const flatTypes = c.type.flatTypes;\n for (let i = 0; i < flatTypes.length; i++) {\n const want = flatTypes[i];\n if (i < flat.length) {\n const use = this.joinFlatType(flat[i], want);\n flat[i] = use;\n c.wantFlatTypes.push(want);\n }\n else {\n flat.push(want);\n c.wantFlatTypes.push(want);\n }\n }\n }\n return [...discriminantType.flatTypes, ...flat];\n }\n static discriminantType(cases) {\n switch (Math.ceil(Math.log2(cases) / 8)) {\n case 0: return exports.u8;\n case 1: return exports.u8;\n case 2: return exports.u16;\n case 3: return exports.u32;\n }\n throw new ComponentModelTrap(`Too many cases: ${cases}`);\n }\n static maxCaseAlignment(cases) {\n let result = 1;\n for (const c of cases) {\n if (c.type !== undefined) {\n result = Math.max(result, c.type.alignment);\n }\n }\n return result;\n }\n static maxCaseSize(cases) {\n let result = 0;\n for (const c of cases) {\n if (c.type !== undefined) {\n result = Math.max(result, c.type.size);\n }\n }\n return result;\n }\n static joinFlatType(a, b) {\n if (a === b) {\n return a;\n }\n if ((a === $i32 && b === $f32) || (a === $f32 && b === $i32)) {\n return $i32;\n }\n return $i64;\n }\n}\nexports.VariantType = VariantType;\nclass EnumType {\n discriminantType;\n cases;\n case2index;\n kind;\n size;\n alignment;\n flatTypes;\n constructor(cases) {\n this.discriminantType = EnumType.discriminantType(cases.length);\n this.cases = cases;\n this.case2index = new Map();\n for (let i = 0; i < cases.length; i++) {\n const c = cases[i];\n this.case2index.set(c, i);\n }\n this.kind = ComponentModelTypeKind.enum;\n this.size = this.discriminantType.size;\n this.alignment = this.discriminantType.alignment;\n this.flatTypes = this.discriminantType.flatTypes;\n }\n load(memory, offset, context) {\n const index = this.assertRange(this.discriminantType.load(memory, offset, context));\n return this.cases[index];\n }\n liftFlat(memory, values, context) {\n const index = this.assertRange(this.discriminantType.liftFlat(memory, values, context));\n return this.cases[index];\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memory, offset, value, context) {\n const index = this.case2index.get(value);\n if (index === undefined) {\n throw new ComponentModelTrap('Enumeration value not found');\n }\n this.discriminantType.store(memory, offset, index, context);\n }\n lowerFlat(result, memory, value, context) {\n const index = this.case2index.get(value);\n if (index === undefined) {\n throw new ComponentModelTrap('Enumeration value not found');\n }\n this.discriminantType.lowerFlat(result, memory, index, context);\n }\n copy(dest, dest_offset, src, src_offset, context) {\n this.discriminantType.copy(dest, dest_offset, src, src_offset, context);\n }\n assertRange(value) {\n if (value < 0 || value > this.cases.length) {\n throw new ComponentModelTrap('Enumeration value out of range');\n }\n return value;\n }\n static discriminantType(cases) {\n switch (Math.ceil(Math.log2(cases) / 8)) {\n case 0: return exports.u8;\n case 1: return exports.u8;\n case 2: return exports.u16;\n case 3: return exports.u32;\n }\n throw new ComponentModelTrap(`Too many cases: ${cases}`);\n }\n}\nexports.EnumType = EnumType;\nvar option;\n(function (option) {\n option.none = 'none';\n function None() {\n return new OptionImpl(option.none, undefined);\n }\n option.None = None;\n option.some = 'some';\n function Some(value) {\n return new OptionImpl(option.some, value);\n }\n option.Some = Some;\n function _ctor(c, v) {\n return new OptionImpl(c, v);\n }\n option._ctor = _ctor;\n function isOption(value) {\n return value instanceof OptionImpl;\n }\n option.isOption = isOption;\n class OptionImpl {\n _tag;\n _value;\n constructor(tag, value) {\n this._tag = tag;\n this._value = value;\n }\n get tag() {\n return this._tag;\n }\n get value() {\n return this._value;\n }\n isNone() {\n return this._tag === option.none;\n }\n isSome() {\n return this._tag === option.some;\n }\n }\n})(option || (exports.option = option = {}));\nclass OptionType {\n valueType;\n kind;\n size;\n alignment;\n flatTypes;\n constructor(valueType) {\n this.valueType = valueType;\n this.kind = ComponentModelTypeKind.option;\n this.size = this.computeSize();\n this.alignment = this.computeAlignment();\n this.flatTypes = this.computeFlatTypes();\n }\n load(memory, offset, context) {\n const caseIndex = exports.u8.load(memory, offset, context);\n if (caseIndex === 0) { // index 0 is none\n return context.options.keepOption ? option._ctor(option.none, undefined) : undefined;\n }\n else {\n offset += exports.u8.size;\n offset = align(offset, this.alignment);\n const value = this.valueType.load(memory, offset, context);\n return (context.options.keepOption ? option._ctor(option.some, value) : value);\n }\n }\n liftFlat(memory, values, context) {\n // First one is the discriminant type. So skip it.\n const caseIndex = exports.u8.liftFlat(memory, values, context);\n if (caseIndex === 0) { // Index 0 is none\n // Read over the value params\n for (let i = 0; i < this.valueType.flatTypes.length; i++) {\n values.next();\n }\n return context.options.keepOption ? option._ctor(option.none, undefined) : undefined;\n }\n else {\n const value = this.valueType.liftFlat(memory, values, context);\n return (context.options.keepOption ? option._ctor(option.some, value) : value);\n }\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memory, offset, value, context) {\n const optValue = this.asOptionValue(value, context.options);\n const index = optValue.tag === option.none ? 0 : 1;\n exports.u8.store(memory, offset, index, context);\n offset += exports.u8.size;\n if (optValue.tag === option.some) {\n offset = align(offset, this.valueType.alignment);\n this.valueType.store(memory, offset, optValue.value, context);\n }\n }\n lowerFlat(result, memory, value, context) {\n const optValue = this.asOptionValue(value, context.options);\n const index = optValue.tag === option.none ? 0 : 1;\n exports.u8.lowerFlat(result, memory, index, context);\n if (optValue.tag === option.none) {\n for (const type of this.valueType.flatTypes) {\n if (type === $i64) {\n result.push(0n);\n }\n else {\n result.push(0);\n }\n }\n }\n else {\n this.valueType.lowerFlat(result, memory, optValue.value, context);\n }\n }\n copy(dest, dest_offset, src, src_offset, context) {\n exports.u8.copy(dest, dest_offset, src, src_offset, context);\n const caseIndex = exports.u8.load(src, src_offset, context);\n if (caseIndex === 0) {\n return;\n }\n else {\n src_offset += exports.u8.size;\n src_offset = align(src_offset, this.alignment);\n dest_offset += exports.u8.size;\n dest_offset = align(dest_offset, this.alignment);\n this.valueType.copy(dest, dest_offset, src, src_offset, context);\n }\n }\n asOptionValue(value, options) {\n if (option.isOption(value)) {\n if (!options.keepOption) {\n throw new ComponentModelTrap('Received an option value although options should be unpacked.');\n }\n return value;\n }\n else {\n if (options.keepOption) {\n throw new ComponentModelTrap('Received a unpacked option value although options should NOT be unpacked.');\n }\n return value === undefined ? option._ctor(option.none, undefined) : option._ctor(option.some, value);\n }\n }\n computeSize() {\n let result = exports.u8.size;\n result = align(result, this.valueType.alignment);\n return result + this.valueType.size;\n }\n computeAlignment() {\n return Math.max(exports.u8.alignment, this.valueType.alignment);\n }\n computeFlatTypes() {\n return [...exports.u8.flatTypes, ...this.valueType.flatTypes];\n }\n}\nexports.OptionType = OptionType;\nvar result;\n(function (result) {\n result.ok = 'ok';\n function Ok(value) {\n return new ResultImpl(result.ok, value);\n }\n result.Ok = Ok;\n result.error = 'error';\n function Error(value) {\n return new ResultImpl(result.error, value);\n }\n result.Error = Error;\n function _ctor(c, v) {\n return new ResultImpl(c, v);\n }\n result._ctor = _ctor;\n class ResultImpl {\n _tag;\n _value;\n constructor(tag, value) {\n this._tag = tag;\n this._value = value;\n }\n get tag() {\n return this._tag;\n }\n get value() {\n return this._value;\n }\n isOk() {\n return this._tag === result.ok;\n }\n isError() {\n return this._tag === result.error;\n }\n }\n result.ResultImpl = ResultImpl;\n})(result || (exports.result = result = {}));\nclass ResultType extends VariantType {\n constructor(okType, errorType) {\n super([['ok', okType], ['error', errorType]], (result._ctor), ComponentModelTypeKind.result);\n }\n}\nexports.ResultType = ResultType;\nclass Callable {\n static EMPTY_JTYPE = Object.freeze([]);\n static EMPTY_WASM_TYPE = Object.freeze([]);\n static MAX_FLAT_PARAMS = 16;\n static MAX_FLAT_RESULTS = 1;\n witName;\n params;\n returnType;\n paramType;\n isSingleParam;\n mode;\n constructor(witName, params, returnType) {\n this.witName = witName;\n this.params = params;\n this.returnType = returnType;\n switch (params.length) {\n case 0:\n this.paramType = undefined;\n this.isSingleParam = false;\n break;\n case 1:\n this.paramType = params[0][1];\n this.isSingleParam = true;\n break;\n default:\n this.paramType = new TupleType(params.map(p => p[1]));\n this.isSingleParam = false;\n }\n this.mode = 'lower';\n }\n liftParamValues(wasmValues, memory, context) {\n if (this.paramType === undefined) {\n return Callable.EMPTY_JTYPE;\n }\n let result;\n if (this.paramType.flatTypes.length > Callable.MAX_FLAT_PARAMS) {\n const p0 = wasmValues[0];\n if (!Number.isInteger(p0)) {\n throw new ComponentModelTrap('Invalid pointer');\n }\n result = this.paramType.load(memory.readonly(p0, this.paramType.size), 0, context);\n }\n else {\n result = this.paramType.liftFlat(memory, wasmValues.values(), context);\n }\n return this.isSingleParam ? [result] : result;\n }\n lowerParamValues(values, memory, context, out) {\n if (this.paramType === undefined) {\n return Callable.EMPTY_WASM_TYPE;\n }\n if (this.isSingleParam && values.length !== 1) {\n throw new ComponentModelTrap(`Expected a single parameter, but got ${values.length}`);\n }\n const toLower = this.isSingleParam ? values[0] : values;\n if (this.paramType.flatTypes.length > Callable.MAX_FLAT_PARAMS) {\n const writer = out !== undefined ? memory.preAllocated(out, this.paramType.size) : this.paramType.alloc(memory);\n this.paramType.store(writer, 0, toLower, context);\n return [writer.ptr];\n }\n else {\n const result = [];\n this.paramType.lowerFlat(result, memory, toLower, context);\n return result;\n }\n }\n lowerReturnValue(value, memory, context, out) {\n if (this.returnType === undefined) {\n return;\n }\n else if (this.returnType.flatTypes.length <= Callable.MAX_FLAT_RESULTS) {\n const result = [];\n this.returnType.lowerFlat(result, memory, value, context);\n if (result.length !== this.returnType.flatTypes.length) {\n throw new ComponentModelTrap(`Expected flat result of length ${this.returnType.flatTypes.length}, but got ${JSON.stringify(result, undefined, undefined)}`);\n }\n return result[0];\n }\n else {\n const writer = out !== undefined ? memory.preAllocated(out, this.returnType.size) : this.returnType.alloc(memory);\n this.returnType.store(writer, 0, value, context);\n return;\n }\n }\n callWasm(params, wasmFunction, context) {\n const memory = context.getMemory();\n const wasmValues = this.lowerParamValues(params, memory, context, undefined);\n let resultRange = undefined;\n let result;\n if (this.returnType !== undefined && this.returnType.flatTypes.length > FunctionType.MAX_FLAT_RESULTS) {\n resultRange = this.returnType.alloc(memory);\n result = wasmFunction(...wasmValues, resultRange.ptr);\n }\n else {\n result = wasmFunction(...wasmValues);\n }\n return this.liftReturnValue(result, resultRange?.ptr, memory, context);\n }\n getParamValuesForHostCall(params, context) {\n const memory = context.getMemory();\n const returnFlatTypes = this.returnType === undefined ? 0 : this.returnType.flatTypes.length;\n // We currently only support 'lower' mode for results > MAX_FLAT_RESULTS.\n let out;\n if (returnFlatTypes > FunctionType.MAX_FLAT_RESULTS) {\n const paramFlatTypes = this.paramType !== undefined ? this.paramType.flatTypes.length : 0;\n // The caller allocated the memory. We just need to pass the pointer.\n if (params.length === paramFlatTypes + 1) {\n const last = params[paramFlatTypes];\n if (typeof last !== 'number') {\n throw new ComponentModelTrap(`Result pointer must be a number (u32), but got ${out}.`);\n }\n out = last;\n }\n }\n return [this.liftParamValues(params, memory, context), out];\n }\n liftReturnValue(value, out, memory, context) {\n if (this.returnType === undefined) {\n return;\n }\n else if (this.returnType.flatTypes.length <= Callable.MAX_FLAT_RESULTS) {\n return this.returnType.liftFlat(memory, [value].values(), context);\n }\n else {\n return this.returnType.load(memory.readonly(out, this.returnType.size), 0, context);\n }\n }\n}\nclass FunctionType extends Callable {\n constructor(witName, params, returnType) {\n super(witName, params, returnType);\n }\n callHost(func, params, context) {\n const [jParams, out] = this.getParamValuesForHostCall(params, context);\n const result = func(...jParams);\n return this.lowerReturnValue(result, context.getMemory(), context, out);\n }\n}\nexports.FunctionType = FunctionType;\nclass ConstructorType extends Callable {\n constructor(witName, params, returnType) {\n super(witName, params, returnType);\n }\n callHost(clazz, params, resourceManager, context) {\n // We currently only support 'lower' mode for results > MAX_FLAT_RESULTS.\n const returnFlatTypes = this.returnType === undefined ? 0 : this.returnType.flatTypes.length;\n if (returnFlatTypes !== 1) {\n throw new ComponentModelTrap(`Expected exactly one return type, but got ${returnFlatTypes}.`);\n }\n const memory = context.getMemory();\n const jParams = this.liftParamValues(params, memory, context);\n const obj = new clazz(...jParams);\n const handle = resourceManager.$handle(obj);\n return handle;\n }\n}\nexports.ConstructorType = ConstructorType;\nclass DestructorType extends Callable {\n constructor(witName, params) {\n super(witName, params);\n }\n callHost(params, resourceManager) {\n const handle = params[0];\n if (typeof handle === 'bigint' || !$u32.valid(handle)) {\n throw new ComponentModelTrap(`Object handle must be a number (u32), but got ${handle}.`);\n }\n const resource = resourceManager.$resource(handle);\n resource['$drop'] !== undefined && resource['$drop']();\n resourceManager.$drop(handle);\n }\n}\nexports.DestructorType = DestructorType;\nclass StaticMethodType extends Callable {\n constructor(witName, params, returnType) {\n super(witName, params, returnType);\n }\n callHost(func, params, context) {\n const [jParams, out] = this.getParamValuesForHostCall(params, context);\n const result = func(...jParams);\n return this.lowerReturnValue(result, context.getMemory(), context, out);\n }\n}\nexports.StaticMethodType = StaticMethodType;\nclass MethodType extends Callable {\n constructor(witName, params, returnType) {\n super(witName, params, returnType);\n }\n callHost(methodName, params, resourceManager, context) {\n if (params.length === 0) {\n throw new ComponentModelTrap(`Method calls must have at least one parameter (the object pointer).`);\n }\n // We need to cut off the first parameter (the object handle).\n const handle = params.shift();\n if (typeof handle !== 'number') {\n throw new ComponentModelTrap(`Object handle must be a number (u32), but got ${handle}.`);\n }\n const [jParams, out] = this.getParamValuesForHostCall(params, context);\n const resource = resourceManager.$resource(handle);\n const memory = context.getMemory();\n const result = resource[methodName](...jParams);\n return this.lowerReturnValue(result, memory, context, out);\n }\n callWasmMethod(params, wasmFunction, resourceManager, context) {\n const memory = context.getMemory();\n const obj = params.shift();\n const handle = obj.$handle ?? resourceManager.$handle(obj);\n const wasmValues = this.lowerParamValues(params, memory, context, undefined);\n let resultRange = undefined;\n let result;\n if (this.returnType !== undefined && this.returnType.flatTypes.length > FunctionType.MAX_FLAT_RESULTS) {\n resultRange = this.returnType.alloc(memory);\n result = wasmFunction(handle, ...wasmValues, resultRange.ptr);\n }\n else {\n result = wasmFunction(handle, ...wasmValues);\n }\n return this.liftReturnValue(result, resultRange?.ptr, memory, context);\n }\n}\nexports.MethodType = MethodType;\nclass ResourceHandleType {\n kind;\n size;\n alignment;\n flatTypes;\n witName;\n constructor(witName) {\n this.witName = witName;\n this.kind = ComponentModelTypeKind.resourceHandle;\n this.size = exports.u32.size;\n this.alignment = exports.u32.alignment;\n this.flatTypes = exports.u32.flatTypes;\n }\n load(memory, offset, context) {\n return exports.u32.load(memory, offset, context);\n }\n liftFlat(memory, values, context) {\n return exports.u32.liftFlat(memory, values, context);\n }\n alloc(memory) {\n return exports.u32.alloc(memory);\n }\n store(memory, offset, value, context) {\n exports.u32.store(memory, offset, value, context);\n }\n lowerFlat(result, memory, value, context) {\n exports.u32.lowerFlat(result, memory, value, context);\n }\n copy(dest, dest_offset, src, src_offset, context) {\n exports.u32.copy(dest, dest_offset, src, src_offset, context);\n }\n}\nexports.ResourceHandleType = ResourceHandleType;\nclass ResourceType {\n kind;\n size;\n alignment;\n flatTypes;\n witName;\n id;\n callables;\n constructor(witName, id) {\n this.kind = ComponentModelTypeKind.resource;\n this.size = exports.u32.size;\n this.alignment = exports.u32.alignment;\n this.flatTypes = exports.u32.flatTypes;\n this.witName = witName;\n this.id = id;\n this.callables = new Map();\n }\n addConstructor(jsName, func) {\n this.callables.set(jsName, func);\n }\n addDestructor(jsName, func) {\n this.callables.set(jsName, func);\n }\n addStaticMethod(jsName, func) {\n this.callables.set(jsName, func);\n }\n addMethod(jsName, func) {\n this.callables.set(jsName, func);\n }\n getCallable(jsName) {\n const result = this.callables.get(jsName);\n if (result === undefined) {\n throw new ComponentModelTrap(`Method '${jsName}' not found on resource '${this.witName}'.`);\n }\n return result;\n }\n load(memory, offset, context) {\n const handle = exports.u32.load(memory, offset, context);\n return context.resources.get(this.id).$resource(handle);\n }\n liftFlat(memory, values, context) {\n const handle = exports.u32.liftFlat(memory, values, context);\n return context.resources.get(this.id).$resource(handle);\n }\n alloc(memory) {\n return exports.u32.alloc(memory);\n }\n store(memory, offset, value, context) {\n const handle = context.resources.get(this.id).$handle(value);\n exports.u32.store(memory, offset, handle, context);\n }\n lowerFlat(result, memory, value, context) {\n const handle = context.resources.get(this.id).$handle(value);\n exports.u32.lowerFlat(result, memory, handle, context);\n }\n copy(dest, dest_offset, src, src_offset, context) {\n exports.u32.copy(dest, dest_offset, src, src_offset, context);\n }\n}\nexports.ResourceType = ResourceType;\nclass AbstractWrapperType {\n kind;\n size;\n alignment;\n flatTypes;\n wrapped;\n constructor(kind, wrapped) {\n this.kind = kind;\n this.wrapped = wrapped;\n this.size = exports.u32.size;\n this.alignment = exports.u32.alignment;\n this.flatTypes = exports.u32.flatTypes;\n }\n load(memory, offset, context) {\n return this.wrapped.load(memory, offset, context);\n }\n liftFlat(memory, values, context) {\n return this.wrapped.liftFlat(memory, values, context);\n }\n alloc(memory) {\n return exports.u32.alloc(memory);\n }\n store(memory, offset, value, context) {\n return this.wrapped.store(memory, offset, value, context);\n }\n lowerFlat(result, memory, value, context) {\n return this.wrapped.lowerFlat(result, memory, value, context);\n }\n copy(dest, dest_offset, src, src_offset, context) {\n return this.wrapped.copy(dest, dest_offset, src, src_offset, context);\n }\n}\nclass BorrowType extends AbstractWrapperType {\n constructor(type) {\n super(ComponentModelTypeKind.borrow, type);\n }\n}\nexports.BorrowType = BorrowType;\nclass OwnType extends AbstractWrapperType {\n constructor(type) {\n super(ComponentModelTypeKind.own, type);\n }\n}\nexports.OwnType = OwnType;\nvar ComponentModelTypeVisitor;\n(function (ComponentModelTypeVisitor) {\n function visit(type, visitor) {\n switch (type.kind) {\n case ComponentModelTypeKind.u8:\n visitor.visitU8 !== undefined && visitor.visitU8(type);\n break;\n case ComponentModelTypeKind.u16:\n visitor.visitU16 !== undefined && visitor.visitU16(type);\n break;\n case ComponentModelTypeKind.u32:\n visitor.visitU32 !== undefined && visitor.visitU32(type);\n break;\n case ComponentModelTypeKind.u64:\n visitor.visitU64 !== undefined && visitor.visitU64(type);\n break;\n case ComponentModelTypeKind.s8:\n visitor.visitS8 !== undefined && visitor.visitS8(type);\n break;\n case ComponentModelTypeKind.s16:\n visitor.visitS16 !== undefined && visitor.visitS16(type);\n break;\n case ComponentModelTypeKind.s32:\n visitor.visitS32 !== undefined && visitor.visitS32(type);\n break;\n case ComponentModelTypeKind.s64:\n visitor.visitS64 !== undefined && visitor.visitS64(type);\n break;\n case ComponentModelTypeKind.float32:\n visitor.visitFloat32 !== undefined && visitor.visitFloat32(type);\n break;\n case ComponentModelTypeKind.float64:\n visitor.visitFloat64 !== undefined && visitor.visitFloat64(type);\n break;\n case ComponentModelTypeKind.bool:\n visitor.visitBool !== undefined && visitor.visitBool(type);\n break;\n case ComponentModelTypeKind.string:\n visitor.visitString !== undefined && visitor.visitString(type);\n break;\n case ComponentModelTypeKind.enum:\n visitor.visitEnum !== undefined && visitor.visitEnum(type);\n break;\n case ComponentModelTypeKind.flags:\n visitor.visitFlags !== undefined && visitor.visitFlags(type);\n break;\n case ComponentModelTypeKind.borrow:\n visitor.visitBorrow !== undefined && visitor.visitBorrow(type);\n break;\n case ComponentModelTypeKind.own:\n visitor.visitOwn !== undefined && visitor.visitOwn(type);\n break;\n case ComponentModelTypeKind.resource:\n visitor.visitResource !== undefined && visitor.visitResource(type);\n break;\n case ComponentModelTypeKind.resourceHandle:\n visitor.visitResourceHandle !== undefined && visitor.visitResourceHandle(type);\n break;\n case ComponentModelTypeKind.list:\n if (visitor.visitList !== undefined && visitor.visitList(type)) {\n visit(type.elementType, visitor);\n }\n visitor.endVisitList !== undefined && visitor.endVisitList(type);\n break;\n case ComponentModelTypeKind.record:\n if ((visitor.visitRecord !== undefined && visitor.visitRecord(type) || visitor.visitRecord === undefined)) {\n for (const field of type.fields) {\n visit(field.type, visitor);\n }\n }\n visitor.endVisitRecord !== undefined && visitor.endVisitRecord(type);\n break;\n case ComponentModelTypeKind.tuple:\n if ((visitor.visitTuple !== undefined && visitor.visitTuple(type) || visitor.visitTuple === undefined)) {\n for (const field of type.fields) {\n visit(field.type, visitor);\n }\n }\n visitor.endVisitTuple !== undefined && visitor.endVisitTuple(type);\n break;\n case ComponentModelTypeKind.variant:\n if ((visitor.visitVariant !== undefined && visitor.visitVariant(type) || visitor.visitVariant === undefined)) {\n for (const field of type.cases) {\n field.type !== undefined && visit(field.type, visitor);\n }\n }\n visitor.endVisitVariant !== undefined && visitor.endVisitVariant(type);\n break;\n case ComponentModelTypeKind.option:\n if ((visitor.visitOption !== undefined && visitor.visitOption(type) || visitor.visitOption === undefined)) {\n visit(type.valueType, visitor);\n }\n visitor.endVisitOption !== undefined && visitor.endVisitOption(type);\n break;\n case ComponentModelTypeKind.result:\n if ((visitor.visitResult !== undefined && visitor.visitResult(type) || visitor.visitResult === undefined)) {\n for (const field of type.cases) {\n field.type !== undefined && visit(field.type, visitor);\n }\n }\n visitor.endVisitResult !== undefined && visitor.endVisitResult(type);\n break;\n default:\n throw new Error(`Unknown type kind ${type.kind}`);\n }\n }\n ComponentModelTypeVisitor.visit = visit;\n})(ComponentModelTypeVisitor || (exports.ComponentModelTypeVisitor = ComponentModelTypeVisitor = {}));\nvar InterfaceType;\n(function (InterfaceType) {\n function is(value) {\n return typeof value === 'object' && typeof value.id === 'string' && typeof value.witName === 'string'\n && value.types instanceof Map && value.functions instanceof Map && value.resources instanceof Map;\n }\n InterfaceType.is = is;\n})(InterfaceType || (exports.InterfaceType = InterfaceType = {}));\nvar PackageType;\n(function (PackageType) {\n function is(value) {\n return typeof value === 'object' && typeof value.id === 'string' && typeof value.witName === 'string'\n && value.interfaces instanceof Map;\n }\n PackageType.is = is;\n})(PackageType || (exports.PackageType = PackageType = {}));\nvar WasmContext;\n(function (WasmContext) {\n class Default {\n memory;\n options;\n resources;\n constructor() {\n this.options = { encoding: 'utf-8' };\n this.resources = new ResourceManagers.Default();\n }\n initialize(memory) {\n if (this.memory !== undefined) {\n throw new MemoryError(`Memory is already initialized.`);\n }\n this.memory = memory;\n }\n getMemory() {\n if (this.memory === undefined) {\n throw new MemoryError(`Memory not yet initialized.`);\n }\n return this.memory;\n }\n }\n WasmContext.Default = Default;\n})(WasmContext || (exports.WasmContext = WasmContext = {}));\nclass Resource {\n _handle;\n constructor() {\n this._handle = undefined;\n }\n get $handle() {\n return this._handle;\n }\n set $handle(value) {\n if (value === undefined) {\n throw new ComponentModelTrap('Cannot set undefined handle');\n }\n if (this._handle !== undefined) {\n throw new ComponentModelTrap(`Cannot set handle twice. Current handle is ${this._handle} new handle is ${value}.`);\n }\n this._handle = value;\n }\n}\nexports.Resource = Resource;\nvar Imports;\n(function (Imports) {\n function create(functions, resources, service, context) {\n const result = Object.create(null);\n if (functions !== undefined) {\n for (const [funcName, func] of functions) {\n result[func.witName] = createFunction(func, service[funcName], context);\n }\n }\n if (resources !== undefined) {\n for (const [resourceName, resource] of resources) {\n const clazz = service[resourceName];\n let resourceManager;\n if (context.resources.has(resource.id)) {\n resourceManager = context.resources.get(resource.id);\n }\n else {\n resourceManager = ResourceManager.from(clazz) ?? new ResourceManager.Default();\n context.resources.set(resource.id, resourceManager);\n }\n for (const [callableName, callable] of resource.callables) {\n if (callable instanceof ConstructorType) {\n result[callable.witName] = createConstructorFunction(callable, clazz, resourceManager, context);\n }\n else if (callable instanceof StaticMethodType) {\n result[callable.witName] = createStaticMethodFunction(callable, service[resourceName][callableName], context);\n }\n else if (callable instanceof MethodType) {\n result[callable.witName] = createMethodFunction(callableName, callable, resourceManager, context);\n }\n else if (callable instanceof DestructorType) {\n result[callable.witName] = createDestructorFunction(callable, resourceManager);\n }\n }\n }\n }\n return result;\n }\n Imports.create = create;\n function createFunction(callable, serviceFunction, context) {\n return function (...params) {\n return callable.callHost(serviceFunction, params, context);\n };\n }\n function createConstructorFunction(callable, clazz, manager, context) {\n return function (...params) {\n return callable.callHost(clazz, params, manager, context);\n };\n }\n function createDestructorFunction(callable, manager) {\n return function (...params) {\n return callable.callHost(params, manager);\n };\n }\n function createStaticMethodFunction(callable, func, context) {\n return function (...params) {\n return callable.callHost(func, params, context);\n };\n }\n function createMethodFunction(name, callable, manager, context) {\n return function (...params) {\n return callable.callHost(name, params, manager, context);\n };\n }\n})(Imports || (exports.Imports = Imports = {}));\nvar Module;\n(function (Module) {\n function createObjectModule(resource, wasm, context) {\n let resourceManager;\n if (context.resources.has(resource.id)) {\n resourceManager = context.resources.get(resource.id);\n }\n else {\n resourceManager = new ResourceManager.Default();\n context.resources.set(resource.id, resourceManager);\n }\n const result = Object.create(null);\n for (const [name, callable] of resource.callables) {\n if (callable instanceof ConstructorType) {\n result[name] = createConstructorFunction(callable, wasm[callable.witName], context);\n }\n else if (callable instanceof MethodType) {\n result[name] = createMethodFunction(callable, wasm[callable.witName], resourceManager, context);\n }\n else if (callable instanceof DestructorType) {\n result[name] = createDestructorFunction(callable, wasm[callable.witName], context);\n }\n }\n return result;\n }\n Module.createObjectModule = createObjectModule;\n function createClassModule(resource, wasm, context) {\n if (!context.resources.has(resource.id)) {\n context.resources.set(resource.id, new ResourceManager.Default());\n }\n const result = Object.create(null);\n for (const [name, callable] of resource.callables) {\n if (callable instanceof StaticMethodType) {\n result[name] = createStaticMethodFunction(callable, wasm[callable.witName], context);\n }\n }\n return result;\n }\n Module.createClassModule = createClassModule;\n function createConstructorFunction(callable, wasmFunction, context) {\n return (...params) => {\n return callable.callWasm(params, wasmFunction, context);\n };\n }\n function createDestructorFunction(callable, wasmFunction, context) {\n return (...params) => {\n return callable.callWasm(params, wasmFunction, context);\n };\n }\n function createStaticMethodFunction(callable, wasmFunction, context) {\n return (...params) => {\n return callable.callWasm(params, wasmFunction, context);\n };\n }\n function createMethodFunction(callable, wasmFunction, manager, context) {\n return (...params) => {\n return callable.callWasmMethod(params, wasmFunction, manager, context);\n };\n }\n})(Module || (exports.Module = Module = {}));\nvar Exports;\n(function (Exports) {\n function filter(exports, functions, resources, id, version, _context) {\n const key = version !== undefined ? `${id}@${version}` : id;\n let result = exports[key];\n // We could actually check if all properties exist in the result.\n if (result !== null && typeof result === 'object') {\n return result;\n }\n result = Object.create(null);\n if (functions !== undefined) {\n for (const func of functions.values()) {\n const funcKey = `${key}#${func.witName}`;\n const candidate = exports[funcKey];\n if (candidate !== null && candidate !== undefined) {\n result[func.witName] = candidate;\n }\n }\n }\n if (resources !== undefined) {\n for (const resource of resources.values()) {\n for (const callable of resource.callables.values()) {\n const callableKey = `${key}#${callable.witName}`;\n const candidate = exports[callableKey];\n if (candidate !== null && candidate !== undefined) {\n result[callable.witName] = candidate;\n }\n }\n }\n }\n return result;\n }\n Exports.filter = filter;\n function bind(functions, resources, wasm, context) {\n const result = Object.create(null);\n if (functions !== undefined) {\n for (const [name, func] of functions) {\n result[name] = createFunction(func, wasm[func.witName], context);\n }\n }\n if (resources !== undefined) {\n for (const [name, , factory] of resources) {\n result[name] = factory(wasm, context);\n }\n }\n return result;\n }\n Exports.bind = bind;\n function createFunction(func, wasmFunction, context) {\n return (...params) => {\n return func.callWasm(params, wasmFunction, context);\n };\n }\n})(Exports || (exports.Exports = Exports = {}));\n", "\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RAL = void 0;\nconst ral_1 = __importDefault(require(\"./ral\"));\nexports.RAL = ral_1.default;\n__exportStar(require(\"./componentModel\"), exports);\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nconst ril_1 = __importDefault(require(\"./ril\"));\nril_1.default.install();\n__exportStar(require(\"../common/api\"), exports);\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as vscode from 'vscode';\nimport { WasmContext, Memory } from '@vscode/wasm-component-model';\n\nimport { example } from './example';\nimport calculator = example.calculator;\nimport Types = example.Types;\n\nexport async function activate(context: vscode.ExtensionContext): Promise {\n\t// The channel for printing the result.\n\tconst channel = vscode.window.createOutputChannel('Calculator');\n\tcontext.subscriptions.push(channel);\n\n\t// The channel for printing the log.\n\tconst log = vscode.window.createOutputChannel('Calculator - Log', { log: true });\n\tcontext.subscriptions.push(log);\n\n\t// Load the Wasm module\n\tconst filename = vscode.Uri.joinPath(context.extensionUri, 'target', 'wasm32-unknown-unknown', 'debug', 'calculator.wasm');\n\tconst bits = await vscode.workspace.fs.readFile(filename);\n\tconst module = await WebAssembly.compile(bits);\n\n\t// The implementation of the log function that is called from WASM\n\tconst service: calculator.Imports = {\n\t\tlog: (msg: string) => {\n\t\t\tlog.info(msg);\n\t\t}\n\t}\n\n\t// The context for the WASM module\n\tconst wasmContext: WasmContext.Default = new WasmContext.Default();\n\n\t// Instantiate the module and create the necessary imports from the service implementation\n\tconst instance = await WebAssembly.instantiate(module, calculator._.createImports(service, wasmContext));\n\t// Bind the WASM memory to the context\n\twasmContext.initialize(new Memory.Default(instance.exports));\n\n\t// Bind the JavaScript Api\n\tconst api = calculator._.bindExports(instance.exports as calculator._.Exports, wasmContext);\n\n\tcontext.subscriptions.push(vscode.commands.registerCommand('vscode-samples.wasm-component-model.run', () => {\n\t\tchannel.show();\n\t\tchannel.appendLine('Running calculator example');\n\t\tchannel.appendLine(`Add ${api.calc(Types.Operation.Add({ left: 1, right: 2}))}`);\n\t\tchannel.appendLine(`Sub ${api.calc(Types.Operation.Sub({ left: 10, right: 8 }))}`);\n\t\tchannel.appendLine(`Mul ${api.calc(Types.Operation.Mul({ left: 3, right: 7 }))}`);\n\t\tchannel.appendLine(`Div ${api.calc(Types.Operation.Div({ left: 10, right: 2 }))}`);\n\t}));\n}", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as $wcm from '@vscode/wasm-component-model';\nimport type { u32, i32 } from '@vscode/wasm-component-model';\n\nexport namespace example {\n\texport namespace Types {\n\t\texport type Operands = {\n\t\t\tleft: u32;\n\t\t\tright: u32;\n\t\t};\n\n\t\texport namespace Operation {\n\t\t\texport const add = 'add' as const;\n\t\t\texport type Add = { readonly tag: typeof add; readonly value: Operands } & _common;\n\t\t\texport function Add(value: Operands): Add {\n\t\t\t\treturn new VariantImpl(add, value) as Add;\n\t\t\t}\n\n\t\t\texport const sub = 'sub' as const;\n\t\t\texport type Sub = { readonly tag: typeof sub; readonly value: Operands } & _common;\n\t\t\texport function Sub(value: Operands): Sub {\n\t\t\t\treturn new VariantImpl(sub, value) as Sub;\n\t\t\t}\n\n\t\t\texport const mul = 'mul' as const;\n\t\t\texport type Mul = { readonly tag: typeof mul; readonly value: Operands } & _common;\n\t\t\texport function Mul(value: Operands): Mul {\n\t\t\t\treturn new VariantImpl(mul, value) as Mul;\n\t\t\t}\n\n\t\t\texport const div = 'div' as const;\n\t\t\texport type Div = { readonly tag: typeof div; readonly value: Operands } & _common;\n\t\t\texport function Div(value: Operands): Div {\n\t\t\t\treturn new VariantImpl(div, value) as Div;\n\t\t\t}\n\n\t\t\texport type _tt = typeof add | typeof sub | typeof mul | typeof div;\n\t\t\texport type _vt = Operands | Operands | Operands | Operands;\n\t\t\ttype _common = Omit;\n\t\t\texport function _ctor(t: _tt, v: _vt): Operation {\n\t\t\t\treturn new VariantImpl(t, v) as Operation;\n\t\t\t}\n\t\t\tclass VariantImpl {\n\t\t\t\tprivate readonly _tag: _tt;\n\t\t\t\tprivate readonly _value: _vt;\n\t\t\t\tconstructor(t: _tt, value: _vt) {\n\t\t\t\t\tthis._tag = t;\n\t\t\t\t\tthis._value = value;\n\t\t\t\t}\n\t\t\t\tget tag(): _tt {\n\t\t\t\t\treturn this._tag;\n\t\t\t\t}\n\t\t\t\tget value(): _vt {\n\t\t\t\t\treturn this._value;\n\t\t\t\t}\n\t\t\t\tisAdd(): this is Add {\n\t\t\t\t\treturn this._tag === Operation.add;\n\t\t\t\t}\n\t\t\t\tisSub(): this is Sub {\n\t\t\t\t\treturn this._tag === Operation.sub;\n\t\t\t\t}\n\t\t\t\tisMul(): this is Mul {\n\t\t\t\t\treturn this._tag === Operation.mul;\n\t\t\t\t}\n\t\t\t\tisDiv(): this is Div {\n\t\t\t\t\treturn this._tag === Operation.div;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\texport type Operation = Operation.Add | Operation.Sub | Operation.Mul | Operation.Div;\n\t}\n\texport type Types = {\n\t};\n\texport namespace calculator {\n\t\texport type Operation = Types.Operation;\n\t\texport type Imports = {\n\t\t\tlog: (msg: string) => void;\n\t\t};\n\t\texport type Exports = {\n\t\t\tcalc: (o: Operation) => u32;\n\t\t};\n\t}\n}\n\nexport namespace example {\n\texport namespace Types.$ {\n\t\texport const Operands = new $wcm.RecordType([\n\t\t\t['left', $wcm.u32],\n\t\t\t['right', $wcm.u32],\n\t\t]);\n\t\texport const Operation = new $wcm.VariantType([['add', Operands], ['sub', Operands], ['mul', Operands], ['div', Operands]], example.Types.Operation._ctor);\n\t}\n\texport namespace Types._ {\n\t\texport const id = 'vscode:example/types' as const;\n\t\texport const witName = 'types' as const;\n\t\texport const types: Map = new Map([\n\t\t\t['Operands', $.Operands],\n\t\t\t['Operation', $.Operation]\n\t\t]);\n\t}\n\texport namespace calculator.$ {\n\t\texport const Operation = Types.$.Operation;\n\t\texport namespace Imports {\n\t\t\texport const log = new $wcm.FunctionType('log',[\n\t\t\t\t['msg', $wcm.wstring],\n\t\t\t], undefined);\n\t\t}\n\t\texport namespace Exports {\n\t\t\texport const calc = new $wcm.FunctionType('calc',[\n\t\t\t\t['o', Operation],\n\t\t\t], $wcm.u32);\n\t\t}\n\t}\n\texport namespace calculator._ {\n\t\texport const id = 'vscode:example/calculator' as const;\n\t\texport const witName = 'calculator' as const;\n\t\texport type $Root = {\n\t\t\t'log': (msg_ptr: i32, msg_len: i32) => void;\n\t\t}\n\t\texport namespace Imports {\n\t\t\texport const functions: Map = new Map([\n\t\t\t\t['log', $.Imports.log]\n\t\t\t]);\n\t\t\texport const interfaces: Map = new Map([\n\t\t\t\t['Types', Types._]\n\t\t\t]);\n\t\t}\n\t\texport type Imports = {\n\t\t\t'$root': $Root;\n\t\t};\n\t\texport namespace Exports {\n\t\t\texport const functions: Map = new Map([\n\t\t\t\t['calc', $.Exports.calc]\n\t\t\t]);\n\t\t}\n\t\texport type Exports = {\n\t\t\t'calc': (o_Operation_case: i32, o_Operation_0: i32, o_Operation_1: i32) => i32;\n\t\t};\n\t\texport function createImports(service: calculator.Imports, context: $wcm.WasmContext): Imports {\n\t\t\tconst result: Imports = Object.create(null);\n\t\t\tresult['$root'] = $wcm.Imports.create<$Root>(Imports.functions, undefined, service, context);\n\t\t\treturn result;\n\t\t}\n\t\texport function bindExports(exports: Exports, context: $wcm.WasmContext): calculator.Exports {\n\t\t\tconst result: calculator.Exports = Object.create(null);\n\t\t\tObject.assign(result, $wcm.Exports.bind(Exports.functions, undefined, exports, context));\n\t\t\treturn result;\n\t\t}\n\t}\n}\n\nexport namespace example._ {\n\texport const id = 'vscode:example' as const;\n\texport const witName = 'example' as const;\n\texport const interfaces: Map = new Map([\n\t\t['Types', Types._]\n\t]);\n\texport const worlds: Map = new Map([\n\t\t['calculator', calculator._]\n\t]);\n}"], - "mappings": "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", - "names": ["exports", "RAL", "exports", "RIL", "crypto", "version", "crypto", "import_crypto", "import_crypto", "crypto", "crypto", "import_crypto", "exports", "result", "ResourceManager", "ResourceManagers", "BigInts", "Alignment", "align", "Memory", "FlatTypeKind", "$i32", "$i64", "$f32", "$f64", "WasmTypes", "ComponentModelTypeKind", "$u8", "$u16", "$u32", "$u64", "$s8", "$s16", "$s32", "$s64", "$float32", "$float64", "$wchar", "$wstring", "RecordField", "RecordType", "TupleField", "VariantCase", "VariantType", "option", "Error", "FunctionType", "ComponentModelTypeVisitor", "InterfaceType", "PackageType", "WasmContext", "Imports", "Module", "Exports", "version", "exports", "exports", "example", "Types", "Operation", "$", "_", "calculator", "Imports", "Exports", "exports", "module"] -} diff --git a/wasm-component-model/dist/web/extension.js b/wasm-component-model/dist/web/extension.js deleted file mode 100644 index d2a38376..00000000 --- a/wasm-component-model/dist/web/extension.js +++ /dev/null @@ -1,4165 +0,0 @@ -"use strict"; -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; -var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); -var __publicField = (obj, key, value) => { - __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); - return value; -}; - -// node_modules/@vscode/wasm-component-model/lib/common/ral.js -var require_ral = __commonJS({ - "node_modules/@vscode/wasm-component-model/lib/common/ral.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var _ral; - function RAL() { - if (_ral === void 0) { - throw new Error(`No runtime abstraction layer installed`); - } - return _ral; - } - (function(RAL2) { - function install(ral) { - if (ral === void 0) { - throw new Error(`No runtime abstraction layer provided`); - } - _ral = ral; - } - RAL2.install = install; - function isInstalled() { - return _ral !== void 0; - } - RAL2.isInstalled = isInstalled; - })(RAL || (RAL = {})); - exports.default = RAL; - } -}); - -// node_modules/@vscode/wasm-component-model/lib/browser/ril.js -var require_ril = __commonJS({ - "node_modules/@vscode/wasm-component-model/lib/browser/ril.js"(exports) { - "use strict"; - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var ral_1 = __importDefault(require_ral()); - var encoder = new TextEncoder(); - var decoder = new TextDecoder(); - var _ril = Object.freeze({ - TextEncoder: Object.freeze({ - create(_encoding = "utf-8") { - return encoder; - } - }), - TextDecoder: Object.freeze({ - create(_encoding = "utf-8") { - return { - decode(input) { - if (input === void 0) { - return decoder.decode(input); - } else { - if (input.buffer instanceof SharedArrayBuffer) { - return decoder.decode(input.slice(0)); - } else { - return decoder.decode(input); - } - } - } - }; - } - }), - console, - timer: Object.freeze({ - setTimeout(callback, ms, ...args) { - const handle = setTimeout(callback, ms, ...args); - return { dispose: () => clearTimeout(handle) }; - }, - setImmediate(callback, ...args) { - const handle = setTimeout(callback, 0, ...args); - return { dispose: () => clearTimeout(handle) }; - }, - setInterval(callback, ms, ...args) { - const handle = setInterval(callback, ms, ...args); - return { dispose: () => clearInterval(handle) }; - } - }) - }); - function RIL() { - return _ril; - } - (function(RIL2) { - function install() { - if (!ral_1.default.isInstalled()) { - ral_1.default.install(_ril); - } - } - RIL2.install = install; - })(RIL || (RIL = {})); - if (!ral_1.default.isInstalled()) { - ral_1.default.install(_ril); - } - exports.default = RIL; - } -}); - -// node_modules/uuid/dist/commonjs-browser/rng.js -var require_rng = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/rng.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = rng; - var getRandomValues; - var rnds8 = new Uint8Array(16); - function rng() { - if (!getRandomValues) { - getRandomValues = typeof crypto !== "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto); - if (!getRandomValues) { - throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); - } - } - return getRandomValues(rnds8); - } - } -}); - -// node_modules/uuid/dist/commonjs-browser/regex.js -var require_regex = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/regex.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/validate.js -var require_validate = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/validate.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - var _regex = _interopRequireDefault(require_regex()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - function validate(uuid) { - return typeof uuid === "string" && _regex.default.test(uuid); - } - var _default = validate; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/stringify.js -var require_stringify = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/stringify.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - exports.unsafeStringify = unsafeStringify; - var _validate = _interopRequireDefault(require_validate()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var byteToHex = []; - for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 256).toString(16).slice(1)); - } - function unsafeStringify(arr, offset = 0) { - return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]; - } - function stringify(arr, offset = 0) { - const uuid = unsafeStringify(arr, offset); - if (!(0, _validate.default)(uuid)) { - throw TypeError("Stringified UUID is invalid"); - } - return uuid; - } - var _default = stringify; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/v1.js -var require_v1 = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/v1.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - var _rng = _interopRequireDefault(require_rng()); - var _stringify = require_stringify(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var _nodeId; - var _clockseq; - var _lastMSecs = 0; - var _lastNSecs = 0; - function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== void 0 ? options.clockseq : _clockseq; - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); - if (node == null) { - node = _nodeId = [seedBytes[0] | 1, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } - if (clockseq == null) { - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383; - } - } - let msecs = options.msecs !== void 0 ? options.msecs : Date.now(); - let nsecs = options.nsecs !== void 0 ? options.nsecs : _lastNSecs + 1; - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4; - if (dt < 0 && options.clockseq === void 0) { - clockseq = clockseq + 1 & 16383; - } - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === void 0) { - nsecs = 0; - } - if (nsecs >= 1e4) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; - msecs += 122192928e5; - const tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296; - b[i++] = tl >>> 24 & 255; - b[i++] = tl >>> 16 & 255; - b[i++] = tl >>> 8 & 255; - b[i++] = tl & 255; - const tmh = msecs / 4294967296 * 1e4 & 268435455; - b[i++] = tmh >>> 8 & 255; - b[i++] = tmh & 255; - b[i++] = tmh >>> 24 & 15 | 16; - b[i++] = tmh >>> 16 & 255; - b[i++] = clockseq >>> 8 | 128; - b[i++] = clockseq & 255; - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } - return buf || (0, _stringify.unsafeStringify)(b); - } - var _default = v1; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/parse.js -var require_parse = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/parse.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - var _validate = _interopRequireDefault(require_validate()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError("Invalid UUID"); - } - let v; - const arr = new Uint8Array(16); - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 255; - arr[2] = v >>> 8 & 255; - arr[3] = v & 255; - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 255; - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 255; - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 255; - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255; - arr[11] = v / 4294967296 & 255; - arr[12] = v >>> 24 & 255; - arr[13] = v >>> 16 & 255; - arr[14] = v >>> 8 & 255; - arr[15] = v & 255; - return arr; - } - var _default = parse; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/v35.js -var require_v35 = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/v35.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.URL = exports.DNS = void 0; - exports.default = v35; - var _stringify = require_stringify(); - var _parse = _interopRequireDefault(require_parse()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); - const bytes = []; - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - return bytes; - } - var DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; - exports.DNS = DNS; - var URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; - exports.URL = URL; - function v35(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - var _namespace; - if (typeof value === "string") { - value = stringToBytes(value); - } - if (typeof namespace === "string") { - namespace = (0, _parse.default)(namespace); - } - if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) { - throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)"); - } - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 15 | version; - bytes[8] = bytes[8] & 63 | 128; - if (buf) { - offset = offset || 0; - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - return buf; - } - return (0, _stringify.unsafeStringify)(bytes); - } - try { - generateUUID.name = name; - } catch (err) { - } - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; - } - } -}); - -// node_modules/uuid/dist/commonjs-browser/md5.js -var require_md5 = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/md5.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - function md5(bytes) { - if (typeof bytes === "string") { - const msg = unescape(encodeURIComponent(bytes)); - bytes = new Uint8Array(msg.length); - for (let i = 0; i < msg.length; ++i) { - bytes[i] = msg.charCodeAt(i); - } - } - return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8)); - } - function md5ToHexEncodedArray(input) { - const output = []; - const length32 = input.length * 32; - const hexTab = "0123456789abcdef"; - for (let i = 0; i < length32; i += 8) { - const x = input[i >> 5] >>> i % 32 & 255; - const hex = parseInt(hexTab.charAt(x >>> 4 & 15) + hexTab.charAt(x & 15), 16); - output.push(hex); - } - return output; - } - function getOutputLength(inputLength8) { - return (inputLength8 + 64 >>> 9 << 4) + 14 + 1; - } - function wordsToMd5(x, len) { - x[len >> 5] |= 128 << len % 32; - x[getOutputLength(len) - 1] = len; - let a = 1732584193; - let b = -271733879; - let c = -1732584194; - let d = 271733878; - for (let i = 0; i < x.length; i += 16) { - const olda = a; - const oldb = b; - const oldc = c; - const oldd = d; - a = md5ff(a, b, c, d, x[i], 7, -680876936); - d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); - c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); - b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); - a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); - d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); - c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); - b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); - a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); - d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); - c = md5ff(c, d, a, b, x[i + 10], 17, -42063); - b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); - a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); - d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); - c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); - b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); - a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); - d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); - c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); - b = md5gg(b, c, d, a, x[i], 20, -373897302); - a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); - d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); - c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); - b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); - a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); - d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); - c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); - b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); - a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); - d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); - c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); - b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); - a = md5hh(a, b, c, d, x[i + 5], 4, -378558); - d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); - c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); - b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); - a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); - d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); - c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); - b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); - a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); - d = md5hh(d, a, b, c, x[i], 11, -358537222); - c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); - b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); - a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); - d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); - c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); - b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); - a = md5ii(a, b, c, d, x[i], 6, -198630844); - d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); - c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); - b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); - a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); - d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); - c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); - b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); - a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); - d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); - c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); - b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); - a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); - d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); - c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); - b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); - a = safeAdd(a, olda); - b = safeAdd(b, oldb); - c = safeAdd(c, oldc); - d = safeAdd(d, oldd); - } - return [a, b, c, d]; - } - function bytesToWords(input) { - if (input.length === 0) { - return []; - } - const length8 = input.length * 8; - const output = new Uint32Array(getOutputLength(length8)); - for (let i = 0; i < length8; i += 8) { - output[i >> 5] |= (input[i / 8] & 255) << i % 32; - } - return output; - } - function safeAdd(x, y) { - const lsw = (x & 65535) + (y & 65535); - const msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return msw << 16 | lsw & 65535; - } - function bitRotateLeft(num, cnt) { - return num << cnt | num >>> 32 - cnt; - } - function md5cmn(q, a, b, x, s, t) { - return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); - } - function md5ff(a, b, c, d, x, s, t) { - return md5cmn(b & c | ~b & d, a, b, x, s, t); - } - function md5gg(a, b, c, d, x, s, t) { - return md5cmn(b & d | c & ~d, a, b, x, s, t); - } - function md5hh(a, b, c, d, x, s, t) { - return md5cmn(b ^ c ^ d, a, b, x, s, t); - } - function md5ii(a, b, c, d, x, s, t) { - return md5cmn(c ^ (b | ~d), a, b, x, s, t); - } - var _default = md5; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/v3.js -var require_v3 = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/v3.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - var _v = _interopRequireDefault(require_v35()); - var _md = _interopRequireDefault(require_md5()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var v3 = (0, _v.default)("v3", 48, _md.default); - var _default = v3; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/native.js -var require_native = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/native.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - var randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto); - var _default = { - randomUUID - }; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/v4.js -var require_v4 = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/v4.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - var _native = _interopRequireDefault(require_native()); - var _rng = _interopRequireDefault(require_rng()); - var _stringify = require_stringify(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - function v4(options, buf, offset) { - if (_native.default.randomUUID && !buf && !options) { - return _native.default.randomUUID(); - } - options = options || {}; - const rnds = options.random || (options.rng || _rng.default)(); - rnds[6] = rnds[6] & 15 | 64; - rnds[8] = rnds[8] & 63 | 128; - if (buf) { - offset = offset || 0; - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } - return buf; - } - return (0, _stringify.unsafeStringify)(rnds); - } - var _default = v4; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/sha1.js -var require_sha1 = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/sha1.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - function f(s, x, y, z) { - switch (s) { - case 0: - return x & y ^ ~x & z; - case 1: - return x ^ y ^ z; - case 2: - return x & y ^ x & z ^ y & z; - case 3: - return x ^ y ^ z; - } - } - function ROTL(x, n) { - return x << n | x >>> 32 - n; - } - function sha1(bytes) { - const K = [1518500249, 1859775393, 2400959708, 3395469782]; - const H = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]; - if (typeof bytes === "string") { - const msg = unescape(encodeURIComponent(bytes)); - bytes = []; - for (let i = 0; i < msg.length; ++i) { - bytes.push(msg.charCodeAt(i)); - } - } else if (!Array.isArray(bytes)) { - bytes = Array.prototype.slice.call(bytes); - } - bytes.push(128); - const l = bytes.length / 4 + 2; - const N = Math.ceil(l / 16); - const M = new Array(N); - for (let i = 0; i < N; ++i) { - const arr = new Uint32Array(16); - for (let j = 0; j < 16; ++j) { - arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3]; - } - M[i] = arr; - } - M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32); - M[N - 1][14] = Math.floor(M[N - 1][14]); - M[N - 1][15] = (bytes.length - 1) * 8 & 4294967295; - for (let i = 0; i < N; ++i) { - const W = new Uint32Array(80); - for (let t = 0; t < 16; ++t) { - W[t] = M[i][t]; - } - for (let t = 16; t < 80; ++t) { - W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1); - } - let a = H[0]; - let b = H[1]; - let c = H[2]; - let d = H[3]; - let e = H[4]; - for (let t = 0; t < 80; ++t) { - const s = Math.floor(t / 20); - const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0; - e = d; - d = c; - c = ROTL(b, 30) >>> 0; - b = a; - a = T; - } - H[0] = H[0] + a >>> 0; - H[1] = H[1] + b >>> 0; - H[2] = H[2] + c >>> 0; - H[3] = H[3] + d >>> 0; - H[4] = H[4] + e >>> 0; - } - return [H[0] >> 24 & 255, H[0] >> 16 & 255, H[0] >> 8 & 255, H[0] & 255, H[1] >> 24 & 255, H[1] >> 16 & 255, H[1] >> 8 & 255, H[1] & 255, H[2] >> 24 & 255, H[2] >> 16 & 255, H[2] >> 8 & 255, H[2] & 255, H[3] >> 24 & 255, H[3] >> 16 & 255, H[3] >> 8 & 255, H[3] & 255, H[4] >> 24 & 255, H[4] >> 16 & 255, H[4] >> 8 & 255, H[4] & 255]; - } - var _default = sha1; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/v5.js -var require_v5 = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/v5.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - var _v = _interopRequireDefault(require_v35()); - var _sha = _interopRequireDefault(require_sha1()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var v5 = (0, _v.default)("v5", 80, _sha.default); - var _default = v5; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/nil.js -var require_nil = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/nil.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - var _default = "00000000-0000-0000-0000-000000000000"; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/version.js -var require_version = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/version.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - var _validate = _interopRequireDefault(require_validate()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError("Invalid UUID"); - } - return parseInt(uuid.slice(14, 15), 16); - } - var _default = version; - exports.default = _default; - } -}); - -// node_modules/uuid/dist/commonjs-browser/index.js -var require_commonjs_browser = __commonJS({ - "node_modules/uuid/dist/commonjs-browser/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - Object.defineProperty(exports, "NIL", { - enumerable: true, - get: function get() { - return _nil.default; - } - }); - Object.defineProperty(exports, "parse", { - enumerable: true, - get: function get() { - return _parse.default; - } - }); - Object.defineProperty(exports, "stringify", { - enumerable: true, - get: function get() { - return _stringify.default; - } - }); - Object.defineProperty(exports, "v1", { - enumerable: true, - get: function get() { - return _v.default; - } - }); - Object.defineProperty(exports, "v3", { - enumerable: true, - get: function get() { - return _v2.default; - } - }); - Object.defineProperty(exports, "v4", { - enumerable: true, - get: function get() { - return _v3.default; - } - }); - Object.defineProperty(exports, "v5", { - enumerable: true, - get: function get() { - return _v4.default; - } - }); - Object.defineProperty(exports, "validate", { - enumerable: true, - get: function get() { - return _validate.default; - } - }); - Object.defineProperty(exports, "version", { - enumerable: true, - get: function get() { - return _version.default; - } - }); - var _v = _interopRequireDefault(require_v1()); - var _v2 = _interopRequireDefault(require_v3()); - var _v3 = _interopRequireDefault(require_v4()); - var _v4 = _interopRequireDefault(require_v5()); - var _nil = _interopRequireDefault(require_nil()); - var _version = _interopRequireDefault(require_version()); - var _validate = _interopRequireDefault(require_validate()); - var _stringify = _interopRequireDefault(require_stringify()); - var _parse = _interopRequireDefault(require_parse()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - } -}); - -// node_modules/@vscode/wasm-component-model/lib/common/componentModel.js -var require_componentModel = __commonJS({ - "node_modules/@vscode/wasm-component-model/lib/common/componentModel.js"(exports) { - "use strict"; - var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result2 = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result2, mod, k); - } - __setModuleDefault(result2, mod); - return result2; - }; - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.OptionType = exports.option = exports.EnumType = exports.VariantType = exports.FlagsType = exports.TupleType = exports.RecordType = exports.Float64ArrayType = exports.Float32ArrayType = exports.BigUint64ArrayType = exports.Uint32ArrayType = exports.Uint16ArrayType = exports.Uint8ArrayType = exports.BigInt64ArrayType = exports.Int32ArrayType = exports.Int16ArrayType = exports.Int8ArrayType = exports.ListType = exports.wstring = exports.wchar = exports.ptr = exports.size = exports.byte = exports.float64 = exports.float32 = exports.s64 = exports.s32 = exports.s16 = exports.s8 = exports.u64 = exports.u32 = exports.u16 = exports.u8 = exports.bool = exports.ComponentModelTypeKind = exports.FlatTuple = exports.f64 = exports.f32 = exports.i64 = exports.i32 = exports.FlatTypeKind = exports.Memory = exports.MemoryRange = exports.ReadonlyMemoryRange = exports.BaseMemoryRange = exports.MemoryError = exports.Alignment = exports.ResourceManagers = exports.ResourceManager = exports.ComponentModelTrap = void 0; - exports.Exports = exports.Module = exports.Imports = exports.Resource = exports.WasmContext = exports.PackageType = exports.InterfaceType = exports.ComponentModelTypeVisitor = exports.OwnType = exports.BorrowType = exports.ResourceType = exports.ResourceHandleType = exports.MethodType = exports.StaticMethodType = exports.DestructorType = exports.ConstructorType = exports.FunctionType = exports.ResultType = exports.result = void 0; - var ral_1 = __importDefault(require_ral()); - var uuid = __importStar(require_commonjs_browser()); - var isLittleEndian = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; - if (!isLittleEndian) { - throw new Error("Big endian platforms are currently not supported."); - } - var ComponentModelTrap = class extends Error { - constructor(message) { - super(message); - } - }; - exports.ComponentModelTrap = ComponentModelTrap; - var ResourceManager; - (function(ResourceManager2) { - function from(obj) { - while (obj !== void 0) { - const self = obj; - if (typeof self.$drop === "function" && typeof self.$handle === "function" && typeof self.$resource === "function") { - return self; - } - obj = obj.$manager; - } - return void 0; - } - ResourceManager2.from = from; - class Default { - constructor() { - __publicField(this, "h2r"); - __publicField(this, "handleCounter"); - this.h2r = /* @__PURE__ */ new Map(); - this.handleCounter = 1; - } - $handle(value) { - if (value.$handle !== void 0) { - return value.$handle; - } - const handle = this.handleCounter++; - this.h2r.set(handle, value); - value.$handle = handle; - return handle; - } - $resource(resource) { - const value = this.h2r.get(resource); - if (value === void 0) { - throw new ComponentModelTrap(`Unknown resource handle ${resource}`); - } - return value; - } - $drop(resource) { - this.h2r.delete(resource); - } - } - ResourceManager2.Default = Default; - })(ResourceManager || (exports.ResourceManager = ResourceManager = {})); - var ResourceManagers; - (function(ResourceManagers2) { - class Default { - constructor() { - __publicField(this, "managers"); - this.managers = /* @__PURE__ */ new Map(); - } - has(id) { - return this.managers.has(id); - } - set(id, manager) { - if (this.managers.has(id)) { - throw new ComponentModelTrap(`Resource manager ${id} already registered.`); - } - this.managers.set(id, manager); - } - get(id) { - const manager = this.managers.get(id); - if (manager === void 0) { - throw new ComponentModelTrap(`Resource manager ${id} not found.`); - } - return manager; - } - } - ResourceManagers2.Default = Default; - })(ResourceManagers || (exports.ResourceManagers = ResourceManagers = {})); - var BigInts; - (function(BigInts2) { - const MAX_VALUE_AS_BIGINT = BigInt(Number.MAX_VALUE); - function asNumber(value) { - if (value > MAX_VALUE_AS_BIGINT) { - throw new ComponentModelTrap("Value too big for number"); - } - return Number(value); - } - BigInts2.asNumber = asNumber; - function max(...args) { - return args.reduce((m, e) => e > m ? e : m); - } - BigInts2.max = max; - function min(...args) { - return args.reduce((m, e) => e < m ? e : m); - } - BigInts2.min = min; - })(BigInts || (BigInts = {})); - var utf8Decoder = (0, ral_1.default)().TextDecoder.create("utf-8"); - var utf8Encoder = (0, ral_1.default)().TextEncoder.create("utf-8"); - var Alignment; - (function(Alignment2) { - Alignment2[Alignment2["byte"] = 1] = "byte"; - Alignment2[Alignment2["halfWord"] = 2] = "halfWord"; - Alignment2[Alignment2["word"] = 4] = "word"; - Alignment2[Alignment2["doubleWord"] = 8] = "doubleWord"; - })(Alignment || (exports.Alignment = Alignment = {})); - (function(Alignment2) { - function align2(ptr, alignment) { - return Math.ceil(ptr / alignment) * alignment; - } - Alignment2.align = align2; - function getAlignment(ptr) { - if (ptr % Alignment2.doubleWord === 0) { - return Alignment2.doubleWord; - } - if (ptr % Alignment2.word === 0) { - return Alignment2.word; - } - if (ptr % Alignment2.halfWord === 0) { - return Alignment2.halfWord; - } - return Alignment2.byte; - } - Alignment2.getAlignment = getAlignment; - })(Alignment || (exports.Alignment = Alignment = {})); - var align = Alignment.align; - var MemoryError = class extends Error { - constructor(message) { - super(message); - } - }; - exports.MemoryError = MemoryError; - var BaseMemoryRange = class { - constructor(memory, ptr, size) { - __publicField(this, "_memory"); - __publicField(this, "_ptr"); - __publicField(this, "_size"); - __publicField(this, "_alignment"); - __publicField(this, "_view"); - this._memory = memory; - this._ptr = ptr; - this._size = size; - this._alignment = Alignment.getAlignment(ptr); - } - get memory() { - return this._memory; - } - get ptr() { - return this._ptr; - } - get size() { - return this._size; - } - get alignment() { - return this._alignment; - } - get view() { - if (this._view === void 0 || this._view.buffer !== this._memory.buffer) { - this._view = new DataView(this._memory.buffer, this._ptr, this._size); - } - return this._view; - } - getUint8(offset) { - return this.view.getUint8(offset); - } - getInt8(offset) { - return this.view.getInt8(offset); - } - getUint16(offset) { - this.assertAlignment(offset, Alignment.halfWord); - return this.view.getUint16(offset, true); - } - getInt16(offset) { - this.assertAlignment(offset, Alignment.halfWord); - return this.view.getInt16(offset, true); - } - getUint32(offset) { - this.assertAlignment(offset, Alignment.word); - return this.view.getUint32(offset, true); - } - getInt32(offset) { - this.assertAlignment(offset, Alignment.word); - return this.view.getInt32(offset, true); - } - getUint64(offset) { - this.assertAlignment(offset, Alignment.doubleWord); - return this.view.getBigUint64(offset, true); - } - getInt64(offset) { - this.assertAlignment(offset, Alignment.doubleWord); - return this.view.getBigInt64(offset, true); - } - getFloat32(offset) { - this.assertAlignment(offset, Alignment.word); - return this.view.getFloat32(offset, true); - } - getFloat64(offset) { - this.assertAlignment(offset, Alignment.doubleWord); - return this.view.getFloat64(offset, true); - } - getPtr(offset) { - this.assertAlignment(offset, Alignment.word); - return this.view.getUint32(offset, true); - } - getUint8Array(offset, length) { - return this.getArray(offset, length, Uint8Array); - } - getInt8Array(offset, length) { - return this.getArray(offset, length, Int8Array); - } - getUint16Array(byteOffset, length) { - return this.getArray(byteOffset, length, Uint16Array); - } - getInt16Array(byteOffset, length) { - return this.getArray(byteOffset, length, Int16Array); - } - getUint32Array(byteOffset, length) { - return this.getArray(byteOffset, length, Uint32Array); - } - getInt32Array(byteOffset, length) { - return this.getArray(byteOffset, length, Int32Array); - } - getUint64Array(byteOffset, length) { - return this.getBigArray(byteOffset, length, BigUint64Array); - } - getInt64Array(byteOffset, length) { - return this.getBigArray(byteOffset, length, BigInt64Array); - } - getFloat32Array(byteOffset, length) { - return this.getArray(byteOffset, length, Float32Array); - } - getFloat64Array(byteOffset, length) { - return this.getArray(byteOffset, length, Float64Array); - } - copyBytes(offset, length, into, into_offset) { - if (offset + length > this.size) { - throw new MemoryError(`Memory access is out of bounds. Accessing [${offset}, ${length}], allocated[${this.ptr}, ${this.size}]`); - } - const target = into.getUint8View(into_offset, length); - target.set(new Uint8Array(this._memory.buffer, this.ptr + offset, length)); - } - assertAlignment(offset, alignment) { - if (alignment > this.alignment || offset % alignment !== 0) { - throw new MemoryError(`Memory location is not aligned to ${alignment}. Allocated[${this.ptr},${this.size}]`); - } - } - getArray(byteOffset, length, clazz) { - length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT; - if (!Number.isInteger(length)) { - throw new MemoryError(`Length must be an integer value. Got ${length}.`); - } - const result2 = new clazz(length); - result2.set(new clazz(this._memory.buffer, this.ptr + byteOffset, length)); - return result2; - } - getBigArray(byteOffset, length, clazz) { - length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT; - if (!Number.isInteger(length)) { - throw new MemoryError(`Length must be an integer value. Got ${length}.`); - } - const result2 = new clazz(length); - result2.set(new clazz(this._memory.buffer, this.ptr + byteOffset, length)); - return result2; - } - }; - exports.BaseMemoryRange = BaseMemoryRange; - var ReadonlyMemoryRange = class _ReadonlyMemoryRange extends BaseMemoryRange { - constructor(memory, ptr, size) { - super(memory, ptr, size); - } - range(offset, size) { - if (offset + size > this.size) { - throw new MemoryError(`Memory access is out of bounds. Accessing [${offset}, ${size}], allocated[${this.ptr}, ${this.size}]`); - } - return new _ReadonlyMemoryRange(this._memory, this.ptr + offset, size); - } - }; - exports.ReadonlyMemoryRange = ReadonlyMemoryRange; - var MemoryRange = class _MemoryRange extends BaseMemoryRange { - constructor(memory, ptr, size, isPreallocated = false) { - super(memory, ptr, size); - __publicField(this, "isAllocated"); - this.isAllocated = isPreallocated; - } - free() { - if (typeof this._memory.free !== "function") { - throw new MemoryError(`Memory doesn't support free`); - } - this._memory.free(this); - } - range(offset, size) { - if (offset + size > this.size) { - throw new MemoryError(`Memory access is out of bounds. Accessing [${offset}, ${size}], allocated[${this.ptr}, ${this.size}]`); - } - return new _MemoryRange(this._memory, this.ptr + offset, size); - } - setUint8(offset, value) { - this.view.setUint8(offset, value); - } - setInt8(offset, value) { - this.view.setInt8(offset, value); - } - setUint16(offset, value) { - this.assertAlignment(offset, Alignment.halfWord); - this.view.setUint16(offset, value, true); - } - setInt16(offset, value) { - this.assertAlignment(offset, Alignment.halfWord); - this.view.setInt16(offset, value, true); - } - setUint32(offset, value) { - this.assertAlignment(offset, Alignment.word); - this.view.setUint32(offset, value, true); - } - setInt32(offset, value) { - this.assertAlignment(offset, Alignment.word); - this.view.setInt32(offset, value, true); - } - setUint64(offset, value) { - this.assertAlignment(offset, Alignment.doubleWord); - this.view.setBigUint64(offset, value, true); - } - setInt64(offset, value) { - this.assertAlignment(offset, Alignment.doubleWord); - this.view.setBigInt64(offset, value, true); - } - setFloat32(offset, value) { - this.assertAlignment(offset, Alignment.word); - this.view.setFloat32(offset, value, true); - } - setFloat64(offset, value) { - this.assertAlignment(offset, Alignment.doubleWord); - this.view.setFloat64(offset, value, true); - } - setPtr(offset, value) { - this.assertAlignment(offset, Alignment.word); - this.view.setUint32(offset, value, true); - } - getUint8View(offset, length) { - return this.getArrayView(offset, length, Uint8Array); - } - getInt8View(offset, length) { - return this.getArrayView(offset, length, Int8Array); - } - getUint16View(offset, length) { - return this.getArrayView(offset, length, Uint16Array); - } - getInt16View(offset, length) { - return this.getArrayView(offset, length, Int16Array); - } - getUint32View(offset, length) { - return this.getArrayView(offset, length, Uint32Array); - } - getInt32View(offset, length) { - return this.getArrayView(offset, length, Int32Array); - } - getUint64View(offset, length) { - return this.getBigArrayView(offset, length, BigUint64Array); - } - getInt64View(offset, length) { - return this.getBigArrayView(offset, length, BigInt64Array); - } - getFloat32View(offset, length) { - return this.getArrayView(offset, length, Float32Array); - } - getFloat64View(offset, length) { - return this.getArrayView(offset, length, Float64Array); - } - setUint8Array(offset, bytes) { - this.setArray(offset, bytes, Uint8Array); - } - setInt8Array(offset, bytes) { - this.setArray(offset, bytes, Int8Array); - } - setUint16Array(offset, bytes) { - this.setArray(offset, bytes, Uint16Array); - } - setInt16Array(offset, bytes) { - this.setArray(offset, bytes, Int16Array); - } - setUint32Array(offset, bytes) { - this.setArray(offset, bytes, Uint32Array); - } - setInt32Array(offset, bytes) { - this.setArray(offset, bytes, Int32Array); - } - setUint64Array(offset, bytes) { - this.setBigArray(offset, bytes, BigUint64Array); - } - setInt64Array(offset, bytes) { - this.setBigArray(offset, bytes, BigInt64Array); - } - setFloat32Array(offset, bytes) { - this.setArray(offset, bytes, Float32Array); - } - setFloat64Array(offset, bytes) { - this.setArray(offset, bytes, Float64Array); - } - getArrayView(byteOffset, length, clazz) { - length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT; - if (!Number.isInteger(length)) { - throw new MemoryError(`Length must be an integer value. Got ${length}.`); - } - return new clazz(this._memory.buffer, this.ptr + byteOffset, length); - } - getBigArrayView(byteOffset, length, clazz) { - length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT; - if (!Number.isInteger(length)) { - throw new MemoryError(`Length must be an integer value. Got ${length}.`); - } - return new clazz(this._memory.buffer, this.ptr + byteOffset, length); - } - setArray(byteOffset, bytes, clazz) { - new clazz(this._memory.buffer, this.ptr + byteOffset, bytes.length).set(bytes); - } - setBigArray(byteOffset, bytes, clazz) { - new clazz(this._memory.buffer, this.ptr + byteOffset, bytes.length).set(bytes); - } - }; - exports.MemoryRange = MemoryRange; - var NullMemory = class { - constructor() { - __publicField(this, "id", "b60336d2-c856-4767-af3b-f66e1ab6c507"); - __publicField(this, "buffer", new ArrayBuffer(0)); - } - alloc() { - throw new MemoryError("Cannot allocate memory on a null memory."); - } - realloc() { - throw new MemoryError("Cannot re-allocate memory on a null memory."); - } - preAllocated() { - throw new MemoryError("Cannot point to pre-allocate memory on a null memory."); - } - readonly() { - throw new MemoryError("Cannot point to readonly memory on a null memory."); - } - free() { - throw new MemoryError("Cannot free memory on a null memory."); - } - }; - var Memory2; - (function(Memory3) { - Memory3.Null = new NullMemory(); - class Default { - constructor(exports2, id) { - __publicField(this, "id"); - __publicField(this, "memory"); - __publicField(this, "cabi_realloc"); - if (exports2.memory === void 0 || exports2.cabi_realloc === void 0) { - throw new MemoryError("The exports object must contain a memory object and a cabi_realloc function."); - } - this.id = id ?? uuid.v4(); - this.memory = exports2.memory; - this.cabi_realloc = exports2.cabi_realloc; - } - get buffer() { - return this.memory.buffer; - } - alloc(align2, size) { - const ptr = this.cabi_realloc(0, 0, align2, size); - return new MemoryRange(this, ptr, size); - } - realloc(range, newSize) { - const ptr = this.cabi_realloc(range.ptr, range.size, range.alignment, newSize); - return new MemoryRange(this, ptr, newSize); - } - preAllocated(ptr, size) { - return new MemoryRange(this, ptr, size); - } - readonly(ptr, size) { - return new ReadonlyMemoryRange(this, ptr, size); - } - } - Memory3.Default = Default; - })(Memory2 || (exports.Memory = Memory2 = {})); - var FlatTypeKind; - (function(FlatTypeKind2) { - FlatTypeKind2["i32"] = "i32"; - FlatTypeKind2["i64"] = "i64"; - FlatTypeKind2["f32"] = "f32"; - FlatTypeKind2["f64"] = "f64"; - })(FlatTypeKind || (exports.FlatTypeKind = FlatTypeKind = {})); - var $i32; - (function($i322) { - $i322.kind = FlatTypeKind.i32; - $i322.size = 4; - $i322.alignment = Alignment.word; - function load(memory, offset) { - return memory.getUint32(offset); - } - $i322.load = load; - function store(memory, offset, value) { - memory.setUint32(offset, value); - } - $i322.store = store; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $i322.alignment); - src.assertAlignment(src_offset, $i322.alignment); - src.copyBytes(src_offset, $i322.size, dest, dest_offset); - } - $i322.copy = copy; - })($i32 || ($i32 = {})); - exports.i32 = $i32; - var $i64; - (function($i642) { - $i642.kind = FlatTypeKind.i64; - $i642.size = 8; - $i642.alignment = Alignment.doubleWord; - function load(memory, offset) { - return memory.getUint64(offset); - } - $i642.load = load; - function store(memory, offset, value) { - memory.setUint64(offset, value); - } - $i642.store = store; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $i642.alignment); - src.assertAlignment(src_offset, $i642.alignment); - src.copyBytes(src_offset, $i642.size, dest, dest_offset); - } - $i642.copy = copy; - })($i64 || ($i64 = {})); - exports.i64 = $i64; - var $f32; - (function($f322) { - $f322.kind = FlatTypeKind.f32; - $f322.size = 4; - $f322.alignment = Alignment.word; - function load(memory, offset) { - return memory.getFloat32(offset); - } - $f322.load = load; - function store(memory, offset, value) { - memory.setFloat32(offset, value); - } - $f322.store = store; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $f322.alignment); - src.assertAlignment(src_offset, $f322.alignment); - src.copyBytes(src_offset, $f322.size, dest, dest_offset); - } - $f322.copy = copy; - })($f32 || ($f32 = {})); - exports.f32 = $f32; - var $f64; - (function($f642) { - $f642.kind = FlatTypeKind.f64; - $f642.size = 8; - $f642.alignment = Alignment.doubleWord; - function load(memory, offset) { - return memory.getFloat64(offset); - } - $f642.load = load; - function store(memory, offset, value) { - memory.setFloat64(offset, value); - } - $f642.store = store; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $f642.alignment); - src.assertAlignment(src_offset, $f642.alignment); - src.copyBytes(src_offset, $f642.size, dest, dest_offset); - } - $f642.copy = copy; - })($f64 || ($f64 = {})); - exports.f64 = $f64; - var FlatTuple = class _FlatTuple { - constructor(types) { - __publicField(this, "types"); - __publicField(this, "alignment"); - __publicField(this, "size"); - this.types = types; - this.alignment = _FlatTuple.alignment(types); - this.size = _FlatTuple.size(types, this.alignment); - } - load(memory, offset) { - memory.assertAlignment(offset, this.alignment); - const result2 = []; - for (const type of this.types) { - offset = align(offset, type.alignment); - result2.push(type.load(memory, offset)); - offset += type.size; - } - return result2; - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memory, offset, values) { - memory.assertAlignment(offset, this.alignment); - for (const [index, type] of this.types.entries()) { - const value = values[index]; - offset = align(offset, type.alignment); - type.store(memory, offset, value); - offset += type.size; - } - } - copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, this.alignment); - src.assertAlignment(src_offset, this.alignment); - src.copyBytes(src_offset, this.size, dest, dest_offset); - } - static alignment(types) { - let result2 = Alignment.byte; - for (const type of types) { - result2 = Math.max(result2, type.alignment); - } - return result2; - } - static size(types, tupleAlignment) { - let result2 = 0; - for (const type of types) { - result2 = align(result2, type.alignment); - result2 += type.size; - } - return align(result2, tupleAlignment); - } - }; - exports.FlatTuple = FlatTuple; - var WasmTypes; - (function(WasmTypes2) { - const $32 = new DataView(new ArrayBuffer(4)); - const $64 = new DataView(new ArrayBuffer(8)); - function reinterpret_i32_as_f32(i32) { - $32.setInt32(0, i32, true); - return $32.getFloat32(0, true); - } - WasmTypes2.reinterpret_i32_as_f32 = reinterpret_i32_as_f32; - function reinterpret_f32_as_i32(f32) { - $32.setFloat32(0, f32, true); - return $32.getInt32(0, true); - } - WasmTypes2.reinterpret_f32_as_i32 = reinterpret_f32_as_i32; - function convert_i64_to_i32(i64) { - return BigInts.asNumber(i64); - } - WasmTypes2.convert_i64_to_i32 = convert_i64_to_i32; - function convert_i32_to_i64(i32) { - return BigInt(i32); - } - WasmTypes2.convert_i32_to_i64 = convert_i32_to_i64; - function reinterpret_i64_as_f32(i64) { - const i32 = convert_i64_to_i32(i64); - return reinterpret_i32_as_f32(i32); - } - WasmTypes2.reinterpret_i64_as_f32 = reinterpret_i64_as_f32; - function reinterpret_f32_as_i64(f32) { - const i32 = reinterpret_f32_as_i32(f32); - return convert_i32_to_i64(i32); - } - WasmTypes2.reinterpret_f32_as_i64 = reinterpret_f32_as_i64; - function reinterpret_i64_as_f64(i64) { - $64.setBigInt64(0, i64, true); - return $64.getFloat64(0, true); - } - WasmTypes2.reinterpret_i64_as_f64 = reinterpret_i64_as_f64; - function reinterpret_f64_as_i64(f64) { - $64.setFloat64(0, f64, true); - return $64.getBigInt64(0, true); - } - WasmTypes2.reinterpret_f64_as_i64 = reinterpret_f64_as_i64; - })(WasmTypes || (WasmTypes = {})); - var CoerceValueIter = class { - constructor(values, haveFlatTypes, wantFlatTypes) { - __publicField(this, "values"); - __publicField(this, "haveFlatTypes"); - __publicField(this, "wantFlatTypes"); - __publicField(this, "index"); - this.values = values; - this.haveFlatTypes = haveFlatTypes; - this.wantFlatTypes = wantFlatTypes; - if (haveFlatTypes.length < wantFlatTypes.length) { - throw new ComponentModelTrap(`Invalid coercion: have ${haveFlatTypes.length} values, want ${wantFlatTypes.length} values`); - } - this.index = 0; - } - next() { - const value = this.values.next(); - if (value.done) { - return value; - } - const haveType = this.haveFlatTypes[this.index]; - const wantType = this.wantFlatTypes[this.index++]; - if (haveType === $i32 && wantType === $f32) { - return { done: false, value: WasmTypes.reinterpret_i32_as_f32(value.value) }; - } else if (haveType === $i64 && wantType === $i32) { - return { done: false, value: WasmTypes.convert_i64_to_i32(value.value) }; - } else if (haveType === $i64 && wantType === $f32) { - return { done: false, value: WasmTypes.reinterpret_i64_as_f32(value.value) }; - } else if (haveType === $i64 && wantType === $f64) { - return { done: false, value: WasmTypes.reinterpret_i64_as_f64(value.value) }; - } else { - return value; - } - } - }; - var ComponentModelTypeKind; - (function(ComponentModelTypeKind2) { - ComponentModelTypeKind2["bool"] = "bool"; - ComponentModelTypeKind2["u8"] = "u8"; - ComponentModelTypeKind2["u16"] = "u16"; - ComponentModelTypeKind2["u32"] = "u32"; - ComponentModelTypeKind2["u64"] = "u64"; - ComponentModelTypeKind2["s8"] = "s8"; - ComponentModelTypeKind2["s16"] = "s16"; - ComponentModelTypeKind2["s32"] = "s32"; - ComponentModelTypeKind2["s64"] = "s64"; - ComponentModelTypeKind2["float32"] = "float32"; - ComponentModelTypeKind2["float64"] = "float64"; - ComponentModelTypeKind2["char"] = "char"; - ComponentModelTypeKind2["string"] = "string"; - ComponentModelTypeKind2["list"] = "list"; - ComponentModelTypeKind2["record"] = "record"; - ComponentModelTypeKind2["tuple"] = "tuple"; - ComponentModelTypeKind2["variant"] = "variant"; - ComponentModelTypeKind2["enum"] = "enum"; - ComponentModelTypeKind2["flags"] = "flags"; - ComponentModelTypeKind2["option"] = "option"; - ComponentModelTypeKind2["result"] = "result"; - ComponentModelTypeKind2["resource"] = "resource"; - ComponentModelTypeKind2["resourceHandle"] = "resourceHandle"; - ComponentModelTypeKind2["borrow"] = "borrow"; - ComponentModelTypeKind2["own"] = "own"; - })(ComponentModelTypeKind || (exports.ComponentModelTypeKind = ComponentModelTypeKind = {})); - exports.bool = { - kind: ComponentModelTypeKind.bool, - size: 1, - alignment: 1, - flatTypes: [$i32], - load(memory, offset) { - return memory.getUint8(offset) !== 0; - }, - liftFlat(_memory, values) { - const value = values.next().value; - if (value < 0) { - throw new Error(`Invalid bool value ${value}`); - } - return value !== 0; - }, - alloc(memory) { - return memory.alloc(exports.bool.alignment, exports.bool.size); - }, - store(memory, offset, value) { - memory.setUint8(offset, value ? 1 : 0); - }, - lowerFlat(result2, _memory, value) { - result2.push(value ? 1 : 0); - }, - copy(dest, dest_offset, src, src_offset) { - src.copyBytes(src_offset, exports.bool.size, dest, dest_offset); - } - }; - var $u8; - (function($u82) { - $u82.kind = ComponentModelTypeKind.u8; - $u82.size = 1; - $u82.alignment = Alignment.byte; - $u82.flatTypes = [$i32]; - $u82.LOW_VALUE = 0; - $u82.HIGH_VALUE = 255; - function load(memory, offset) { - return memory.getUint8(offset); - } - $u82.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u82.LOW_VALUE || value > $u82.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u8 value ${value}`); - } - return value; - } - $u82.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($u82.alignment, $u82.size); - } - $u82.alloc = alloc; - function store(memory, offset, value) { - memory.setUint8(offset, value); - } - $u82.store = store; - function lowerFlat(result2, _memory, value) { - if (value < $u82.LOW_VALUE || value > $u82.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u8 value ${value}`); - } - result2.push(value); - } - $u82.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - src.copyBytes(src_offset, $u82.size, dest, dest_offset); - } - $u82.copy = copy; - })($u8 || ($u8 = {})); - exports.u8 = $u8; - var $u16; - (function($u162) { - $u162.kind = ComponentModelTypeKind.u16; - $u162.size = 2; - $u162.alignment = Alignment.halfWord; - $u162.flatTypes = [$i32]; - $u162.LOW_VALUE = 0; - $u162.HIGH_VALUE = 65535; - function load(memory, offset) { - return memory.getUint16(offset); - } - $u162.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u162.LOW_VALUE || value > $u162.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u16 value ${value}`); - } - return value; - } - $u162.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($u162.alignment, $u162.size); - } - $u162.alloc = alloc; - function store(memory, offset, value) { - memory.setUint16(offset, value); - } - $u162.store = store; - function lowerFlat(result2, _memory, value) { - if (value < $u162.LOW_VALUE || value > $u162.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u16 value ${value}`); - } - result2.push(value); - } - $u162.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $u162.alignment); - src.assertAlignment(src_offset, $u162.alignment); - src.copyBytes(src_offset, $u162.size, dest, dest_offset); - } - $u162.copy = copy; - })($u16 || ($u16 = {})); - exports.u16 = $u16; - var $u32; - (function($u322) { - $u322.kind = ComponentModelTypeKind.u32; - $u322.size = 4; - $u322.alignment = Alignment.word; - $u322.flatTypes = [$i32]; - $u322.LOW_VALUE = 0; - $u322.HIGH_VALUE = 4294967295; - function valid(value) { - return value >= $u322.LOW_VALUE && value <= $u322.HIGH_VALUE && Number.isInteger(value); - } - $u322.valid = valid; - function load(memory, offset) { - return memory.getUint32(offset); - } - $u322.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u322.LOW_VALUE || value > $u322.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u32 value ${value}`); - } - return value; - } - $u322.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($u322.alignment, $u322.size); - } - $u322.alloc = alloc; - function store(memory, offset, value) { - memory.setUint32(offset, value); - } - $u322.store = store; - function lowerFlat(result2, _memory, value) { - if (value < $u322.LOW_VALUE || value > $u322.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u32 value ${value}`); - } - result2.push(value); - } - $u322.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $u322.alignment); - src.assertAlignment(src_offset, $u322.alignment); - src.copyBytes(src_offset, $u322.size, dest, dest_offset); - } - $u322.copy = copy; - })($u32 || ($u32 = {})); - exports.u32 = $u32; - var $u64; - (function($u642) { - $u642.kind = ComponentModelTypeKind.u64; - $u642.size = 8; - $u642.alignment = Alignment.doubleWord; - $u642.flatTypes = [$i64]; - $u642.LOW_VALUE = 0n; - $u642.HIGH_VALUE = 18446744073709551615n; - function load(memory, offset) { - return memory.getUint64(offset); - } - $u642.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u642.LOW_VALUE) { - throw new Error(`Invalid u64 value ${value}`); - } - return value; - } - $u642.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($u642.alignment, $u642.size); - } - $u642.alloc = alloc; - function store(memory, offset, value) { - memory.setUint64(offset, value); - } - $u642.store = store; - function lowerFlat(result2, _memory, value) { - if (value < $u642.LOW_VALUE) { - throw new Error(`Invalid u64 value ${value}`); - } - result2.push(value); - } - $u642.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $u642.alignment); - src.assertAlignment(src_offset, $u642.alignment); - src.copyBytes(src_offset, $u642.size, dest, dest_offset); - } - $u642.copy = copy; - })($u64 || ($u64 = {})); - exports.u64 = $u64; - var $s8; - (function($s82) { - $s82.kind = ComponentModelTypeKind.s8; - $s82.size = 1; - $s82.alignment = Alignment.byte; - $s82.flatTypes = [$i32]; - const LOW_VALUE = -128; - const HIGH_VALUE = 127; - function load(memory, offset) { - return memory.getInt8(offset); - } - $s82.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u8.LOW_VALUE || value > $u8.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid u8 value ${value}`); - } - if (value <= HIGH_VALUE) { - return value; - } else { - return value - 256; - } - } - $s82.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($s82.alignment, $s82.size); - } - $s82.alloc = alloc; - function store(memory, offset, value) { - memory.setInt8(offset, value); - } - $s82.store = store; - function lowerFlat(result2, _memory, value) { - if (value < LOW_VALUE || value > HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid s8 value ${value}`); - } - result2.push(value < 0 ? value + 256 : value); - } - $s82.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $s82.alignment); - src.assertAlignment(src_offset, $s82.alignment); - src.copyBytes(src_offset, $s82.size, dest, dest_offset); - } - $s82.copy = copy; - })($s8 || ($s8 = {})); - exports.s8 = $s8; - var $s16; - (function($s162) { - $s162.kind = ComponentModelTypeKind.s16; - $s162.size = 2; - $s162.alignment = Alignment.halfWord; - $s162.flatTypes = [$i32]; - const LOW_VALUE = -32768; - const HIGH_VALUE = 32767; - function load(memory, offset) { - return memory.getInt16(offset); - } - $s162.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u16.LOW_VALUE || value > $u16.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid s16 value ${value}`); - } - return value <= HIGH_VALUE ? value : value - 65536; - } - $s162.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($s162.alignment, $s162.size); - } - $s162.alloc = alloc; - function store(memory, offset, value) { - memory.setInt16(offset, value); - } - $s162.store = store; - function lowerFlat(result2, _memory, value) { - if (value < LOW_VALUE || value > HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid s16 value ${value}`); - } - result2.push(value < 0 ? value + 65536 : value); - } - $s162.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $s162.alignment); - src.assertAlignment(src_offset, $s162.alignment); - src.copyBytes(src_offset, $s162.size, dest, dest_offset); - } - $s162.copy = copy; - })($s16 || ($s16 = {})); - exports.s16 = $s16; - var $s32; - (function($s322) { - $s322.kind = ComponentModelTypeKind.s32; - $s322.size = 4; - $s322.alignment = Alignment.word; - $s322.flatTypes = [$i32]; - const LOW_VALUE = -2147483648; - const HIGH_VALUE = 2147483647; - function load(memory, offset) { - return memory.getInt32(offset); - } - $s322.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u32.LOW_VALUE || value > $u32.HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid s32 value ${value}`); - } - return value <= HIGH_VALUE ? value : value - 4294967296; - } - $s322.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($s322.alignment, $s322.size); - } - $s322.alloc = alloc; - function store(memory, offset, value) { - memory.setInt32(offset, value); - } - $s322.store = store; - function lowerFlat(result2, _memory, value) { - if (value < LOW_VALUE || value > HIGH_VALUE || !Number.isInteger(value)) { - throw new Error(`Invalid s32 value ${value}`); - } - result2.push(value < 0 ? value + 4294967296 : value); - } - $s322.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $s322.alignment); - src.assertAlignment(src_offset, $s322.alignment); - src.copyBytes(src_offset, $s322.size, dest, dest_offset); - } - $s322.copy = copy; - })($s32 || ($s32 = {})); - exports.s32 = $s32; - var $s64; - (function($s642) { - $s642.kind = ComponentModelTypeKind.s64; - $s642.size = 8; - $s642.alignment = Alignment.doubleWord; - $s642.flatTypes = [$i64]; - const LOW_VALUE = -9223372036854775808n; - const HIGH_VALUE = 9223372036854775807n; - function load(memory, offset) { - return memory.getInt64(offset); - } - $s642.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < $u64.LOW_VALUE) { - throw new Error(`Invalid s64 value ${value}`); - } - return value <= HIGH_VALUE ? value : value - 18446744073709551616n; - } - $s642.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($s642.alignment, $s642.size); - } - $s642.alloc = alloc; - function store(memory, offset, value) { - memory.setInt64(offset, value); - } - $s642.store = store; - function lowerFlat(result2, _memory, value) { - if (value < LOW_VALUE || value > HIGH_VALUE) { - throw new Error(`Invalid s64 value ${value}`); - } - result2.push(value < 0 ? value + 18446744073709551616n : value); - } - $s642.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $s642.alignment); - src.assertAlignment(src_offset, $s642.alignment); - src.copyBytes(src_offset, $s642.size, dest, dest_offset); - } - $s642.copy = copy; - })($s64 || ($s64 = {})); - exports.s64 = $s64; - var $float32; - (function($float322) { - $float322.kind = ComponentModelTypeKind.float32; - $float322.size = 4; - $float322.alignment = Alignment.word; - $float322.flatTypes = [$f32]; - const LOW_VALUE = -34028234663852886e22; - const HIGH_VALUE = 34028234663852886e22; - const NAN = 2143289344; - function load(memory, offset) { - return memory.getFloat32(offset); - } - $float322.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < LOW_VALUE || value > HIGH_VALUE) { - throw new Error(`Invalid float32 value ${value}`); - } - return value === NAN ? Number.NaN : value; - } - $float322.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($float322.alignment, $float322.size); - } - $float322.alloc = alloc; - function store(memory, offset, value) { - memory.setFloat32(offset, value); - } - $float322.store = store; - function lowerFlat(result2, _memory, value) { - if (value < LOW_VALUE || value > HIGH_VALUE) { - throw new Error(`Invalid float32 value ${value}`); - } - result2.push(Number.isNaN(value) ? NAN : value); - } - $float322.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $float322.alignment); - src.assertAlignment(src_offset, $float322.alignment); - src.copyBytes(src_offset, $float322.size, dest, dest_offset); - } - $float322.copy = copy; - })($float32 || ($float32 = {})); - exports.float32 = $float32; - var $float64; - (function($float642) { - $float642.kind = ComponentModelTypeKind.float64; - $float642.size = 8; - $float642.alignment = Alignment.doubleWord; - $float642.flatTypes = [$f64]; - const LOW_VALUE = -1 * Number.MAX_VALUE; - const HIGH_VALUE = Number.MAX_VALUE; - const NAN = 9221120237041091e3; - function load(memory, offset) { - return memory.getFloat64(offset); - } - $float642.load = load; - function liftFlat(_memory, values) { - const value = values.next().value; - if (value < LOW_VALUE || value > HIGH_VALUE) { - throw new Error(`Invalid float64 value ${value}`); - } - return value === NAN ? Number.NaN : value; - } - $float642.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($float642.alignment, $float642.size); - } - $float642.alloc = alloc; - function store(memory, offset, value) { - memory.setFloat64(offset, value); - } - $float642.store = store; - function lowerFlat(result2, _memory, value) { - if (value < LOW_VALUE || value > HIGH_VALUE) { - throw new Error(`Invalid float64 value ${value}`); - } - result2.push(Number.isNaN(value) ? NAN : value); - } - $float642.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $float642.alignment); - src.assertAlignment(src_offset, $float642.alignment); - src.copyBytes(src_offset, $float642.size, dest, dest_offset); - } - $float642.copy = copy; - })($float64 || ($float64 = {})); - exports.float64 = $float64; - exports.byte = { - kind: exports.u8.kind, - size: exports.u8.size, - alignment: exports.u8.alignment, - flatTypes: exports.u8.flatTypes, - load: exports.u8.load, - liftFlat: exports.u8.liftFlat, - alloc: exports.u8.alloc, - store: exports.u8.store, - lowerFlat: exports.u8.lowerFlat, - copy: exports.u8.copy - }; - exports.size = { - kind: exports.u32.kind, - size: exports.u32.size, - alignment: exports.u32.alignment, - flatTypes: exports.u32.flatTypes, - load: exports.u32.load, - liftFlat: exports.u32.liftFlat, - alloc: exports.u32.alloc, - store: exports.u32.store, - lowerFlat: exports.u32.lowerFlat, - copy: exports.u32.copy - }; - exports.ptr = { - kind: exports.u32.kind, - size: exports.u32.size, - alignment: exports.u32.alignment, - flatTypes: exports.u32.flatTypes, - load: exports.u32.load, - liftFlat: exports.u32.liftFlat, - alloc: exports.u32.alloc, - store: exports.u32.store, - lowerFlat: exports.u32.lowerFlat, - copy: exports.u32.copy - }; - var $wchar; - (function($wchar2) { - $wchar2.kind = ComponentModelTypeKind.char; - $wchar2.size = 4; - $wchar2.alignment = Alignment.word; - $wchar2.flatTypes = [$i32]; - function load(memory, offset, context) { - return fromCodePoint(exports.u32.load(memory, offset, context)); - } - $wchar2.load = load; - function liftFlat(memory, values, context) { - return fromCodePoint(exports.u32.liftFlat(memory, values, context)); - } - $wchar2.liftFlat = liftFlat; - function alloc(memory) { - return exports.u32.alloc(memory); - } - $wchar2.alloc = alloc; - function store(memory, offset, value, context) { - exports.u32.store(memory, offset, asCodePoint(value), context); - } - $wchar2.store = store; - function lowerFlat(result2, memory, value, context) { - exports.u32.lowerFlat(result2, memory, asCodePoint(value), context); - } - $wchar2.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, $wchar2.alignment); - src.assertAlignment(src_offset, $wchar2.alignment); - src.copyBytes(src_offset, $wchar2.size, dest, dest_offset); - } - $wchar2.copy = copy; - function fromCodePoint(code) { - if (code >= 1114112 || 55296 <= code && code <= 57343) { - throw new ComponentModelTrap("Invalid code point"); - } - return String.fromCodePoint(code); - } - function asCodePoint(str) { - if (str.length !== 1) { - throw new ComponentModelTrap("String length must be 1"); - } - const code = str.codePointAt(0); - if (!(code <= 55295 || 55296 <= code && code <= 1114111)) { - throw new ComponentModelTrap("Invalid code point"); - } - return code; - } - })($wchar || ($wchar = {})); - exports.wchar = $wchar; - var $wstring; - (function($wstring2) { - const offsets = { - data: 0, - codeUnits: 4 - }; - $wstring2.kind = ComponentModelTypeKind.string; - $wstring2.size = 8; - $wstring2.alignment = Alignment.word; - $wstring2.flatTypes = [$i32, $i32]; - function load(memRange, offset, context) { - const dataPtr = memRange.getUint32(offset + offsets.data); - const codeUnits = memRange.getUint32(offset + offsets.codeUnits); - return loadFromRange(memRange.memory, dataPtr, codeUnits, context.options); - } - $wstring2.load = load; - function liftFlat(memory, values, context) { - const dataPtr = values.next().value; - const codeUnits = values.next().value; - return loadFromRange(memory, dataPtr, codeUnits, context.options); - } - $wstring2.liftFlat = liftFlat; - function alloc(memory) { - return memory.alloc($wstring2.alignment, $wstring2.size); - } - $wstring2.alloc = alloc; - function store(memory, offset, str, context) { - const [ptr, codeUnits] = storeIntoRange(memory.memory, str, context.options); - memory.setUint32(offset + offsets.data, ptr); - memory.setUint32(offset + offsets.codeUnits, codeUnits); - } - $wstring2.store = store; - function lowerFlat(result2, memory, str, context) { - result2.push(...storeIntoRange(memory, str, context.options)); - } - $wstring2.lowerFlat = lowerFlat; - function copy(dest, dest_offset, src, src_offset, context) { - dest.assertAlignment(dest_offset, $wstring2.alignment); - src.assertAlignment(src_offset, $wstring2.alignment); - src.copyBytes(src_offset, $wstring2.size, dest, dest_offset); - const data = src.getUint32(src_offset + offsets.data); - const codeUnits = src.getUint32(src_offset + offsets.codeUnits); - const [alignment, byteLength] = getAlignmentAndByteLength(codeUnits, context.options); - const srcReader = src.memory.readonly(data, byteLength); - const destWriter = dest.memory.alloc(alignment, byteLength); - srcReader.copyBytes(0, byteLength, destWriter, 0); - } - $wstring2.copy = copy; - function getAlignmentAndByteLength(codeUnits, options) { - const encoding = options.encoding; - if (encoding === "latin1+utf-16") { - throw new Error("latin1+utf-16 encoding not yet supported"); - } - if (encoding === "utf-8") { - return [exports.u8.alignment, codeUnits]; - } else if (encoding === "utf-16") { - return [exports.u16.alignment, codeUnits * 2]; - } else { - throw new Error("Unsupported encoding"); - } - } - $wstring2.getAlignmentAndByteLength = getAlignmentAndByteLength; - function loadFromRange(memory, data, codeUnits, options) { - const encoding = options.encoding; - if (encoding === "latin1+utf-16") { - throw new Error("latin1+utf-16 encoding not yet supported"); - } - if (encoding === "utf-8") { - const byteLength = codeUnits; - const reader = memory.readonly(data, byteLength); - return utf8Decoder.decode(reader.getUint8Array(0, byteLength)); - } else if (encoding === "utf-16") { - const reader = memory.readonly(data, codeUnits * 2); - return String.fromCharCode(...reader.getUint16Array(data, codeUnits)); - } else { - throw new Error("Unsupported encoding"); - } - } - function storeIntoRange(memory, str, options) { - const { encoding } = options; - if (encoding === "latin1+utf-16") { - throw new Error("latin1+utf-16 encoding not yet supported"); - } - if (encoding === "utf-8") { - const data = utf8Encoder.encode(str); - const writer = memory.alloc(exports.u8.alignment, data.length); - writer.setUint8Array(0, data); - return [writer.ptr, data.length]; - } else if (encoding === "utf-16") { - const writer = memory.alloc(exports.u16.alignment, str.length * 2); - const data = writer.getUint16View(0); - for (let i = 0; i < str.length; i++) { - data[i] = str.charCodeAt(i); - } - return [writer.ptr, data.length]; - } else { - throw new Error("Unsupported encoding"); - } - } - })($wstring || ($wstring = {})); - exports.wstring = $wstring; - var _ListType = class _ListType { - constructor(elementType) { - __publicField(this, "elementType"); - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - this.elementType = elementType; - this.kind = ComponentModelTypeKind.list; - this.size = 8; - this.alignment = Alignment.word; - this.flatTypes = [$i32, $i32]; - } - load(memRange, offset, context) { - const offsets = _ListType.offsets; - const dataPtr = memRange.getUint32(offset + offsets.data); - const length = memRange.getUint32(offset + offsets.length); - return this.loadFromRange(memRange.memory.readonly(dataPtr, length * this.elementType.size), length, context); - } - liftFlat(memory, values, context) { - const dataPtr = values.next().value; - const length = values.next().value; - return this.loadFromRange(memory.readonly(dataPtr, length * this.elementType.size), length, context); - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memRange, offset, values, context) { - const elementMemory = memRange.memory.alloc(this.elementType.alignment, this.elementType.size * values.length); - this.storeIntoRange(elementMemory, values, context); - const offsets = _ListType.offsets; - memRange.setUint32(offset + offsets.data, elementMemory.ptr); - memRange.setUint32(offset + offsets.length, values.length); - } - lowerFlat(result2, memory, values, context) { - const elementMemory = memory.alloc(this.elementType.alignment, this.elementType.size * values.length); - this.storeIntoRange(elementMemory, values, context); - result2.push(elementMemory.ptr, values.length); - } - copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, this.alignment); - src.assertAlignment(src_offset, this.alignment); - const offsets = _ListType.offsets; - src.copyBytes(src_offset, this.size, dest, dest_offset); - const data = src.getUint32(src_offset + offsets.data); - const byteLength = src.getUint32(src_offset + offsets.length) * this.elementType.size; - const srcReader = src.memory.readonly(data, byteLength); - const destWriter = dest.memory.alloc(this.elementType.alignment, byteLength); - srcReader.copyBytes(0, byteLength, destWriter, 0); - } - loadFromRange(memory, length, context) { - const result2 = []; - let offset = 0; - for (let i = 0; i < length; i++) { - result2.push(this.elementType.load(memory, offset, context)); - offset += this.elementType.size; - } - return result2; - } - storeIntoRange(memory, values, context) { - let offset = 0; - for (const item of values) { - this.elementType.store(memory, offset, item, context); - offset += this.elementType.size; - } - } - }; - __publicField(_ListType, "offsets", { - data: 0, - length: 4 - }); - var ListType = _ListType; - exports.ListType = ListType; - var _TypeArrayType = class _TypeArrayType { - constructor(elementType) { - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - __publicField(this, "elementType"); - this.kind = ComponentModelTypeKind.list; - this.size = 8; - this.alignment = 4; - this.flatTypes = [$i32, $i32]; - this.elementType = elementType; - } - load(memRange, offset) { - const offsets = _TypeArrayType.offsets; - const dataPtr = memRange.getUint32(offset + offsets.data); - const length = memRange.getUint32(offset + offsets.length); - return this.loadFromRange(memRange.memory.readonly(dataPtr, length * this.elementType.size), length); - } - liftFlat(memory, values) { - const dataPtr = values.next().value; - const length = values.next().value; - return this.loadFromRange(memory.readonly(dataPtr, length * this.elementType.size), length); - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memRange, offset, value) { - const writer = memRange.memory.alloc(this.elementType.alignment, value.byteLength); - this.storeIntoRange(writer, value); - const offsets = _TypeArrayType.offsets; - memRange.setUint32(offset + offsets.data, writer.ptr); - memRange.setUint32(offset + offsets.length, value.length); - } - lowerFlat(result2, memory, value) { - const writer = memory.alloc(this.elementType.alignment, value.byteLength); - this.storeIntoRange(writer, value); - result2.push(writer.ptr, value.length); - } - copy(dest, dest_offset, src, src_offset) { - dest.assertAlignment(dest_offset, this.alignment); - src.assertAlignment(src_offset, this.alignment); - const offsets = _TypeArrayType.offsets; - src.copyBytes(src_offset, this.size, dest, dest_offset); - const data = src.getUint32(src_offset + offsets.data); - const byteLength = src.getUint32(src_offset + offsets.length) * this.elementType.size; - const srcReader = src.memory.readonly(data, byteLength); - const destWriter = dest.memory.alloc(this.elementType.alignment, byteLength); - srcReader.copyBytes(0, byteLength, destWriter, 0); - } - }; - __publicField(_TypeArrayType, "offsets", { - data: 0, - length: 4 - }); - var TypeArrayType = _TypeArrayType; - var Int8ArrayType = class extends TypeArrayType { - constructor() { - super($s8); - } - loadFromRange(memory, length) { - return memory.getInt8Array(0, length); - } - storeIntoRange(memory, value) { - memory.setInt8Array(0, value); - } - }; - exports.Int8ArrayType = Int8ArrayType; - var Int16ArrayType = class extends TypeArrayType { - constructor() { - super($s16); - } - loadFromRange(memory, length) { - return memory.getInt16Array(0, length); - } - storeIntoRange(memory, value) { - memory.setInt16Array(0, value); - } - }; - exports.Int16ArrayType = Int16ArrayType; - var Int32ArrayType = class extends TypeArrayType { - constructor() { - super($s32); - } - loadFromRange(memory, length) { - return memory.getInt32Array(0, length); - } - storeIntoRange(memory, value) { - memory.setInt32Array(0, value); - } - }; - exports.Int32ArrayType = Int32ArrayType; - var BigInt64ArrayType = class extends TypeArrayType { - constructor() { - super($s64); - } - loadFromRange(memory, length) { - return memory.getInt64Array(0, length); - } - storeIntoRange(memory, value) { - memory.setInt64Array(0, value); - } - }; - exports.BigInt64ArrayType = BigInt64ArrayType; - var Uint8ArrayType = class extends TypeArrayType { - constructor() { - super($u8); - } - loadFromRange(memory, length) { - return memory.getUint8Array(0, length); - } - storeIntoRange(memory, value) { - memory.setUint8Array(0, value); - } - }; - exports.Uint8ArrayType = Uint8ArrayType; - var Uint16ArrayType = class extends TypeArrayType { - constructor() { - super($u16); - } - loadFromRange(memory, length) { - return memory.getUint16Array(0, length); - } - storeIntoRange(memory, value) { - memory.setUint16Array(0, value); - } - }; - exports.Uint16ArrayType = Uint16ArrayType; - var Uint32ArrayType = class extends TypeArrayType { - constructor() { - super($u32); - } - loadFromRange(memory, length) { - return memory.getUint32Array(0, length); - } - storeIntoRange(memory, value) { - memory.setUint32Array(0, value); - } - }; - exports.Uint32ArrayType = Uint32ArrayType; - var BigUint64ArrayType = class extends TypeArrayType { - constructor() { - super($u64); - } - loadFromRange(memory, length) { - return memory.getUint64Array(0, length); - } - storeIntoRange(memory, value) { - memory.setUint64Array(0, value); - } - }; - exports.BigUint64ArrayType = BigUint64ArrayType; - var Float32ArrayType = class extends TypeArrayType { - constructor() { - super($float32); - } - loadFromRange(memory, length) { - return memory.getFloat32Array(0, length); - } - storeIntoRange(memory, value) { - memory.setFloat32Array(0, value); - } - }; - exports.Float32ArrayType = Float32ArrayType; - var Float64ArrayType = class extends TypeArrayType { - constructor() { - super($float64); - } - loadFromRange(memory, length) { - return memory.getFloat64Array(0, length); - } - storeIntoRange(memory, value) { - memory.setFloat64Array(0, value); - } - }; - exports.Float64ArrayType = Float64ArrayType; - var BaseRecordType = class _BaseRecordType { - constructor(fields, kind) { - __publicField(this, "fields"); - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - this.fields = fields; - this.kind = kind; - this.alignment = _BaseRecordType.alignment(fields); - this.size = _BaseRecordType.size(fields, this.alignment); - this.flatTypes = _BaseRecordType.flatTypes(fields); - } - load(memory, offset, context) { - memory.assertAlignment(offset, this.alignment); - const result2 = []; - for (const field of this.fields) { - offset = align(offset, field.type.alignment); - result2.push(field.type.load(memory, offset, context)); - offset += field.type.size; - } - return this.create(this.fields, result2); - } - liftFlat(memory, values, context) { - const result2 = []; - for (const field of this.fields) { - result2.push(field.type.liftFlat(memory, values, context)); - } - return this.create(this.fields, result2); - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memory, offset, record, context) { - memory.assertAlignment(offset, this.alignment); - const values = this.elements(record, this.fields); - for (let i = 0; i < this.fields.length; i++) { - const field = this.fields[i]; - const value = values[i]; - offset = align(offset, field.type.alignment); - field.type.store(memory, offset, value, context); - offset += field.type.size; - } - } - lowerFlat(result2, memory, record, context) { - const values = this.elements(record, this.fields); - for (let i = 0; i < this.fields.length; i++) { - const field = this.fields[i]; - const value = values[i]; - field.type.lowerFlat(result2, memory, value, context); - } - } - copy(dest, dest_offset, src, src_offset, context) { - for (const field of this.fields) { - dest_offset = align(dest_offset, field.type.alignment); - src_offset = align(src_offset, field.type.alignment); - field.type.copy(dest, dest_offset, src, src_offset, context); - dest_offset += field.type.size; - src_offset += field.type.size; - } - } - static size(fields, recordAlignment) { - let result2 = 0; - for (const field of fields) { - result2 = align(result2, field.type.alignment); - result2 += field.type.size; - } - return align(result2, recordAlignment); - } - static alignment(fields) { - let result2 = 1; - for (const field of fields) { - result2 = Math.max(result2, field.type.alignment); - } - return result2; - } - static flatTypes(fields) { - const result2 = []; - for (const field of fields) { - result2.push(...field.type.flatTypes); - } - return result2; - } - }; - var RecordField; - (function(RecordField2) { - function create(name, type) { - return { name, type }; - } - RecordField2.create = create; - })(RecordField || (RecordField = {})); - var RecordType2 = class extends BaseRecordType { - constructor(fields) { - const recordFields = []; - for (const [name, type] of fields) { - recordFields.push(RecordField.create(name, type)); - } - super(recordFields, ComponentModelTypeKind.record); - } - create(fields, values) { - const result2 = {}; - for (let i = 0; i < fields.length; i++) { - const field = fields[i]; - const value = values[i]; - result2[field.name] = value; - } - return result2; - } - elements(record, fields) { - const result2 = []; - for (const field of fields) { - const value = record[field.name]; - result2.push(value); - } - return result2; - } - }; - exports.RecordType = RecordType2; - var TupleField; - (function(TupleField2) { - function create(type) { - return { type }; - } - TupleField2.create = create; - })(TupleField || (TupleField = {})); - var TupleType = class extends BaseRecordType { - constructor(fields) { - const tupleFields = []; - for (const type of fields) { - tupleFields.push(TupleField.create(type)); - } - super(tupleFields, ComponentModelTypeKind.tuple); - } - create(_fields, values) { - return values; - } - elements(record, _fields) { - return record; - } - }; - exports.TupleType = TupleType; - var FlagsType = class _FlagsType { - constructor(numberOfFlags) { - __publicField(this, "type"); - __publicField(this, "arraySize"); - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - this.kind = ComponentModelTypeKind.flags; - this.size = _FlagsType.size(numberOfFlags); - this.alignment = _FlagsType.alignment(numberOfFlags); - this.flatTypes = _FlagsType.flatTypes(numberOfFlags); - this.type = _FlagsType.getType(numberOfFlags); - this.arraySize = _FlagsType.num32Flags(numberOfFlags); - } - load(memory, offset, context) { - return this.type === void 0 ? 0 : this.loadFrom(this.type.load(memory, offset, context)); - } - liftFlat(memory, values, context) { - return this.type === void 0 ? 0 : this.loadFrom(this.type.liftFlat(memory, values, context)); - } - loadFrom(value) { - if (typeof value === "number") { - return value; - } else { - let result2 = 0n; - for (let f = 0, i = value.length - 1; f < value.length; f++, i--) { - const bits = value[i]; - result2 = result2 | BigInt(bits) << BigInt(f * 32); - } - return result2; - } - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memory, offset, flags, context) { - if (this.type !== void 0) { - this.type.store(memory, offset, this.storeInto(flags), context); - } - } - lowerFlat(result2, _memory, flags, context) { - if (this.type !== void 0) { - this.type.lowerFlat(result2, _memory, this.storeInto(flags), context); - } - } - copy(dest, dest_offset, src, src_offset, context) { - if (this.type !== void 0) { - this.type.copy(dest, dest_offset, src, src_offset, context); - } - } - storeInto(value) { - if (typeof value === "number") { - return value; - } else { - const result2 = new Array(this.arraySize).fill(0); - for (let f = 0, i = result2.length - 1; f < result2.length; f++, i--) { - const bits = Number(value >> BigInt(f * 32) & BigInt(4294967295)); - result2[i] = bits; - } - return result2; - } - } - static size(numberOfFlags) { - if (numberOfFlags === 0) { - return 0; - } else if (numberOfFlags <= 8) { - return 1; - } else if (numberOfFlags <= 16) { - return 2; - } else { - return 4 * this.num32Flags(numberOfFlags); - } - } - static alignment(numberOfFlags) { - if (numberOfFlags <= 8) { - return 1; - } else if (numberOfFlags <= 16) { - return 2; - } else { - return 4; - } - } - static getType(numberOfFlags) { - if (numberOfFlags === 0) { - return void 0; - } else if (numberOfFlags <= 8) { - return exports.u8; - } else if (numberOfFlags <= 16) { - return exports.u16; - } else if (numberOfFlags <= 32) { - return exports.u32; - } else { - return new TupleType(new Array(this.num32Flags(numberOfFlags)).fill(exports.u32)); - } - } - static flatTypes(numberOfFlags) { - return new Array(this.num32Flags(numberOfFlags)).fill($i32); - } - static num32Flags(numberOfFlags) { - return Math.ceil(numberOfFlags / 32); - } - }; - exports.FlagsType = FlagsType; - var VariantCase; - (function(VariantCase2) { - function create(index, tag, type) { - return { index, tag, type, wantFlatTypes: type !== void 0 ? [] : void 0 }; - } - VariantCase2.create = create; - })(VariantCase || (VariantCase = {})); - var VariantType2 = class _VariantType { - constructor(variants, ctor, kind = ComponentModelTypeKind.variant) { - __publicField(this, "cases"); - __publicField(this, "case2Index"); - __publicField(this, "ctor"); - __publicField(this, "discriminantType"); - __publicField(this, "maxCaseAlignment"); - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - const cases = []; - this.case2Index = /* @__PURE__ */ new Map(); - for (let i = 0; i < variants.length; i++) { - const type = variants[i][1]; - const name = variants[i][0]; - this.case2Index.set(name, i); - cases.push(VariantCase.create(i, name, type)); - } - this.cases = cases; - this.ctor = ctor; - this.discriminantType = _VariantType.discriminantType(cases.length); - this.maxCaseAlignment = _VariantType.maxCaseAlignment(cases); - this.kind = kind; - this.size = _VariantType.size(this.discriminantType, cases); - this.alignment = _VariantType.alignment(this.discriminantType, cases); - this.flatTypes = _VariantType.flatTypes(this.discriminantType, cases); - } - load(memory, offset, context) { - const caseIndex = this.discriminantType.load(memory, offset, context); - const caseVariant = this.cases[caseIndex]; - if (caseVariant.type === void 0) { - return this.ctor(caseVariant.tag, void 0); - } else { - offset += this.discriminantType.size; - offset = align(offset, this.maxCaseAlignment); - const value = caseVariant.type.load(memory, offset, context); - return this.ctor(caseVariant.tag, value); - } - } - liftFlat(memory, values, context) { - let valuesToReadOver = this.flatTypes.length - 1; - const caseIndex = this.discriminantType.liftFlat(memory, values, context); - const caseVariant = this.cases[caseIndex]; - let result2; - if (caseVariant.type === void 0) { - result2 = this.ctor(caseVariant.tag, void 0); - } else { - const wantFlatTypes = caseVariant.wantFlatTypes; - const iter = new CoerceValueIter(values, this.flatTypes.slice(1), wantFlatTypes); - const value = caseVariant.type.liftFlat(memory, iter, context); - result2 = this.ctor(caseVariant.tag, value); - valuesToReadOver = valuesToReadOver - wantFlatTypes.length; - } - for (let i = 0; i < valuesToReadOver; i++) { - values.next(); - } - return result2; - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memory, offset, variantValue, context) { - const index = this.case2Index.get(variantValue.tag); - if (index === void 0) { - throw new ComponentModelTrap(`Variant case ${variantValue.tag} not found`); - } - this.discriminantType.store(memory, offset, index, context); - offset += this.discriminantType.size; - const c = this.cases[index]; - if (c.type !== void 0 && variantValue.value !== void 0) { - offset = align(offset, this.maxCaseAlignment); - c.type.store(memory, offset, variantValue.value, context); - } - } - lowerFlat(result2, memory, variantValue, context) { - const flatTypes = this.flatTypes; - const index = this.case2Index.get(variantValue.tag); - if (index === void 0) { - throw new ComponentModelTrap(`Variant case ${variantValue.tag} not found`); - } - this.discriminantType.lowerFlat(result2, memory, index, context); - const c = this.cases[index]; - let valuesToFill = this.flatTypes.length - 1; - if (c.type !== void 0 && variantValue.value !== void 0) { - const payload = []; - c.type.lowerFlat(payload, memory, variantValue.value, context); - const wantTypes = flatTypes.slice(1); - const haveTypes = c.wantFlatTypes; - if (payload.length !== haveTypes.length) { - throw new ComponentModelTrap("Mismatched flat types"); - } - for (let i = 0; i < wantTypes.length; i++) { - const have = haveTypes[i]; - const want = wantTypes[i]; - if (have === $f32 && want === $i32) { - payload[i] = WasmTypes.reinterpret_f32_as_i32(payload[i]); - } else if (have === $i32 && want === $i64) { - payload[i] = WasmTypes.convert_i32_to_i64(payload[i]); - } else if (have === $f32 && want === $i64) { - payload[i] = WasmTypes.reinterpret_f32_as_i64(payload[i]); - } else if (have === $f64 && want === $i64) { - payload[i] = WasmTypes.reinterpret_f64_as_i64(payload[i]); - } - } - valuesToFill = valuesToFill - payload.length; - result2.push(...payload); - } - for (let i = flatTypes.length - valuesToFill; i < flatTypes.length; i++) { - const type = flatTypes[i]; - if (type === $i64) { - result2.push(0n); - } else { - result2.push(0); - } - } - } - copy(dest, dest_offset, src, src_offset, context) { - this.discriminantType.copy(dest, dest_offset, src, src_offset, context); - const caseIndex = this.discriminantType.load(src, src_offset, context); - const caseVariant = this.cases[caseIndex]; - if (caseVariant.type === void 0) { - return; - } - src_offset += this.discriminantType.size; - src_offset = align(src_offset, this.maxCaseAlignment); - dest_offset += this.discriminantType.size; - dest_offset = align(dest_offset, this.maxCaseAlignment); - caseVariant.type.copy(dest, dest_offset, src, src_offset, context); - } - static size(discriminantType, cases) { - let result2 = discriminantType.size; - result2 = align(result2, this.maxCaseAlignment(cases)); - return result2 + this.maxCaseSize(cases); - } - static alignment(discriminantType, cases) { - return Math.max(discriminantType.alignment, this.maxCaseAlignment(cases)); - } - static flatTypes(discriminantType, cases) { - const flat = []; - for (const c of cases) { - if (c.type === void 0) { - continue; - } - const flatTypes = c.type.flatTypes; - for (let i = 0; i < flatTypes.length; i++) { - const want = flatTypes[i]; - if (i < flat.length) { - const use = this.joinFlatType(flat[i], want); - flat[i] = use; - c.wantFlatTypes.push(want); - } else { - flat.push(want); - c.wantFlatTypes.push(want); - } - } - } - return [...discriminantType.flatTypes, ...flat]; - } - static discriminantType(cases) { - switch (Math.ceil(Math.log2(cases) / 8)) { - case 0: - return exports.u8; - case 1: - return exports.u8; - case 2: - return exports.u16; - case 3: - return exports.u32; - } - throw new ComponentModelTrap(`Too many cases: ${cases}`); - } - static maxCaseAlignment(cases) { - let result2 = 1; - for (const c of cases) { - if (c.type !== void 0) { - result2 = Math.max(result2, c.type.alignment); - } - } - return result2; - } - static maxCaseSize(cases) { - let result2 = 0; - for (const c of cases) { - if (c.type !== void 0) { - result2 = Math.max(result2, c.type.size); - } - } - return result2; - } - static joinFlatType(a, b) { - if (a === b) { - return a; - } - if (a === $i32 && b === $f32 || a === $f32 && b === $i32) { - return $i32; - } - return $i64; - } - }; - exports.VariantType = VariantType2; - var EnumType = class _EnumType { - constructor(cases) { - __publicField(this, "discriminantType"); - __publicField(this, "cases"); - __publicField(this, "case2index"); - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - this.discriminantType = _EnumType.discriminantType(cases.length); - this.cases = cases; - this.case2index = /* @__PURE__ */ new Map(); - for (let i = 0; i < cases.length; i++) { - const c = cases[i]; - this.case2index.set(c, i); - } - this.kind = ComponentModelTypeKind.enum; - this.size = this.discriminantType.size; - this.alignment = this.discriminantType.alignment; - this.flatTypes = this.discriminantType.flatTypes; - } - load(memory, offset, context) { - const index = this.assertRange(this.discriminantType.load(memory, offset, context)); - return this.cases[index]; - } - liftFlat(memory, values, context) { - const index = this.assertRange(this.discriminantType.liftFlat(memory, values, context)); - return this.cases[index]; - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memory, offset, value, context) { - const index = this.case2index.get(value); - if (index === void 0) { - throw new ComponentModelTrap("Enumeration value not found"); - } - this.discriminantType.store(memory, offset, index, context); - } - lowerFlat(result2, memory, value, context) { - const index = this.case2index.get(value); - if (index === void 0) { - throw new ComponentModelTrap("Enumeration value not found"); - } - this.discriminantType.lowerFlat(result2, memory, index, context); - } - copy(dest, dest_offset, src, src_offset, context) { - this.discriminantType.copy(dest, dest_offset, src, src_offset, context); - } - assertRange(value) { - if (value < 0 || value > this.cases.length) { - throw new ComponentModelTrap("Enumeration value out of range"); - } - return value; - } - static discriminantType(cases) { - switch (Math.ceil(Math.log2(cases) / 8)) { - case 0: - return exports.u8; - case 1: - return exports.u8; - case 2: - return exports.u16; - case 3: - return exports.u32; - } - throw new ComponentModelTrap(`Too many cases: ${cases}`); - } - }; - exports.EnumType = EnumType; - var option; - (function(option2) { - option2.none = "none"; - function None() { - return new OptionImpl(option2.none, void 0); - } - option2.None = None; - option2.some = "some"; - function Some(value) { - return new OptionImpl(option2.some, value); - } - option2.Some = Some; - function _ctor(c, v) { - return new OptionImpl(c, v); - } - option2._ctor = _ctor; - function isOption(value) { - return value instanceof OptionImpl; - } - option2.isOption = isOption; - class OptionImpl { - constructor(tag, value) { - __publicField(this, "_tag"); - __publicField(this, "_value"); - this._tag = tag; - this._value = value; - } - get tag() { - return this._tag; - } - get value() { - return this._value; - } - isNone() { - return this._tag === option2.none; - } - isSome() { - return this._tag === option2.some; - } - } - })(option || (exports.option = option = {})); - var OptionType = class { - constructor(valueType) { - __publicField(this, "valueType"); - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - this.valueType = valueType; - this.kind = ComponentModelTypeKind.option; - this.size = this.computeSize(); - this.alignment = this.computeAlignment(); - this.flatTypes = this.computeFlatTypes(); - } - load(memory, offset, context) { - const caseIndex = exports.u8.load(memory, offset, context); - if (caseIndex === 0) { - return context.options.keepOption ? option._ctor(option.none, void 0) : void 0; - } else { - offset += exports.u8.size; - offset = align(offset, this.alignment); - const value = this.valueType.load(memory, offset, context); - return context.options.keepOption ? option._ctor(option.some, value) : value; - } - } - liftFlat(memory, values, context) { - const caseIndex = exports.u8.liftFlat(memory, values, context); - if (caseIndex === 0) { - for (let i = 0; i < this.valueType.flatTypes.length; i++) { - values.next(); - } - return context.options.keepOption ? option._ctor(option.none, void 0) : void 0; - } else { - const value = this.valueType.liftFlat(memory, values, context); - return context.options.keepOption ? option._ctor(option.some, value) : value; - } - } - alloc(memory) { - return memory.alloc(this.alignment, this.size); - } - store(memory, offset, value, context) { - const optValue = this.asOptionValue(value, context.options); - const index = optValue.tag === option.none ? 0 : 1; - exports.u8.store(memory, offset, index, context); - offset += exports.u8.size; - if (optValue.tag === option.some) { - offset = align(offset, this.valueType.alignment); - this.valueType.store(memory, offset, optValue.value, context); - } - } - lowerFlat(result2, memory, value, context) { - const optValue = this.asOptionValue(value, context.options); - const index = optValue.tag === option.none ? 0 : 1; - exports.u8.lowerFlat(result2, memory, index, context); - if (optValue.tag === option.none) { - for (const type of this.valueType.flatTypes) { - if (type === $i64) { - result2.push(0n); - } else { - result2.push(0); - } - } - } else { - this.valueType.lowerFlat(result2, memory, optValue.value, context); - } - } - copy(dest, dest_offset, src, src_offset, context) { - exports.u8.copy(dest, dest_offset, src, src_offset, context); - const caseIndex = exports.u8.load(src, src_offset, context); - if (caseIndex === 0) { - return; - } else { - src_offset += exports.u8.size; - src_offset = align(src_offset, this.alignment); - dest_offset += exports.u8.size; - dest_offset = align(dest_offset, this.alignment); - this.valueType.copy(dest, dest_offset, src, src_offset, context); - } - } - asOptionValue(value, options) { - if (option.isOption(value)) { - if (!options.keepOption) { - throw new ComponentModelTrap("Received an option value although options should be unpacked."); - } - return value; - } else { - if (options.keepOption) { - throw new ComponentModelTrap("Received a unpacked option value although options should NOT be unpacked."); - } - return value === void 0 ? option._ctor(option.none, void 0) : option._ctor(option.some, value); - } - } - computeSize() { - let result2 = exports.u8.size; - result2 = align(result2, this.valueType.alignment); - return result2 + this.valueType.size; - } - computeAlignment() { - return Math.max(exports.u8.alignment, this.valueType.alignment); - } - computeFlatTypes() { - return [...exports.u8.flatTypes, ...this.valueType.flatTypes]; - } - }; - exports.OptionType = OptionType; - var result; - (function(result2) { - result2.ok = "ok"; - function Ok(value) { - return new ResultImpl(result2.ok, value); - } - result2.Ok = Ok; - result2.error = "error"; - function Error2(value) { - return new ResultImpl(result2.error, value); - } - result2.Error = Error2; - function _ctor(c, v) { - return new ResultImpl(c, v); - } - result2._ctor = _ctor; - class ResultImpl { - constructor(tag, value) { - __publicField(this, "_tag"); - __publicField(this, "_value"); - this._tag = tag; - this._value = value; - } - get tag() { - return this._tag; - } - get value() { - return this._value; - } - isOk() { - return this._tag === result2.ok; - } - isError() { - return this._tag === result2.error; - } - } - result2.ResultImpl = ResultImpl; - })(result || (exports.result = result = {})); - var ResultType = class extends VariantType2 { - constructor(okType, errorType) { - super([["ok", okType], ["error", errorType]], result._ctor, ComponentModelTypeKind.result); - } - }; - exports.ResultType = ResultType; - var _Callable = class _Callable { - constructor(witName, params, returnType) { - __publicField(this, "witName"); - __publicField(this, "params"); - __publicField(this, "returnType"); - __publicField(this, "paramType"); - __publicField(this, "isSingleParam"); - __publicField(this, "mode"); - this.witName = witName; - this.params = params; - this.returnType = returnType; - switch (params.length) { - case 0: - this.paramType = void 0; - this.isSingleParam = false; - break; - case 1: - this.paramType = params[0][1]; - this.isSingleParam = true; - break; - default: - this.paramType = new TupleType(params.map((p) => p[1])); - this.isSingleParam = false; - } - this.mode = "lower"; - } - liftParamValues(wasmValues, memory, context) { - if (this.paramType === void 0) { - return _Callable.EMPTY_JTYPE; - } - let result2; - if (this.paramType.flatTypes.length > _Callable.MAX_FLAT_PARAMS) { - const p0 = wasmValues[0]; - if (!Number.isInteger(p0)) { - throw new ComponentModelTrap("Invalid pointer"); - } - result2 = this.paramType.load(memory.readonly(p0, this.paramType.size), 0, context); - } else { - result2 = this.paramType.liftFlat(memory, wasmValues.values(), context); - } - return this.isSingleParam ? [result2] : result2; - } - lowerParamValues(values, memory, context, out) { - if (this.paramType === void 0) { - return _Callable.EMPTY_WASM_TYPE; - } - if (this.isSingleParam && values.length !== 1) { - throw new ComponentModelTrap(`Expected a single parameter, but got ${values.length}`); - } - const toLower = this.isSingleParam ? values[0] : values; - if (this.paramType.flatTypes.length > _Callable.MAX_FLAT_PARAMS) { - const writer = out !== void 0 ? memory.preAllocated(out, this.paramType.size) : this.paramType.alloc(memory); - this.paramType.store(writer, 0, toLower, context); - return [writer.ptr]; - } else { - const result2 = []; - this.paramType.lowerFlat(result2, memory, toLower, context); - return result2; - } - } - lowerReturnValue(value, memory, context, out) { - if (this.returnType === void 0) { - return; - } else if (this.returnType.flatTypes.length <= _Callable.MAX_FLAT_RESULTS) { - const result2 = []; - this.returnType.lowerFlat(result2, memory, value, context); - if (result2.length !== this.returnType.flatTypes.length) { - throw new ComponentModelTrap(`Expected flat result of length ${this.returnType.flatTypes.length}, but got ${JSON.stringify(result2, void 0, void 0)}`); - } - return result2[0]; - } else { - const writer = out !== void 0 ? memory.preAllocated(out, this.returnType.size) : this.returnType.alloc(memory); - this.returnType.store(writer, 0, value, context); - return; - } - } - callWasm(params, wasmFunction, context) { - const memory = context.getMemory(); - const wasmValues = this.lowerParamValues(params, memory, context, void 0); - let resultRange = void 0; - let result2; - if (this.returnType !== void 0 && this.returnType.flatTypes.length > FunctionType2.MAX_FLAT_RESULTS) { - resultRange = this.returnType.alloc(memory); - result2 = wasmFunction(...wasmValues, resultRange.ptr); - } else { - result2 = wasmFunction(...wasmValues); - } - return this.liftReturnValue(result2, resultRange?.ptr, memory, context); - } - getParamValuesForHostCall(params, context) { - const memory = context.getMemory(); - const returnFlatTypes = this.returnType === void 0 ? 0 : this.returnType.flatTypes.length; - let out; - if (returnFlatTypes > FunctionType2.MAX_FLAT_RESULTS) { - const paramFlatTypes = this.paramType !== void 0 ? this.paramType.flatTypes.length : 0; - if (params.length === paramFlatTypes + 1) { - const last = params[paramFlatTypes]; - if (typeof last !== "number") { - throw new ComponentModelTrap(`Result pointer must be a number (u32), but got ${out}.`); - } - out = last; - } - } - return [this.liftParamValues(params, memory, context), out]; - } - liftReturnValue(value, out, memory, context) { - if (this.returnType === void 0) { - return; - } else if (this.returnType.flatTypes.length <= _Callable.MAX_FLAT_RESULTS) { - return this.returnType.liftFlat(memory, [value].values(), context); - } else { - return this.returnType.load(memory.readonly(out, this.returnType.size), 0, context); - } - } - }; - __publicField(_Callable, "EMPTY_JTYPE", Object.freeze([])); - __publicField(_Callable, "EMPTY_WASM_TYPE", Object.freeze([])); - __publicField(_Callable, "MAX_FLAT_PARAMS", 16); - __publicField(_Callable, "MAX_FLAT_RESULTS", 1); - var Callable = _Callable; - var FunctionType2 = class extends Callable { - constructor(witName, params, returnType) { - super(witName, params, returnType); - } - callHost(func, params, context) { - const [jParams, out] = this.getParamValuesForHostCall(params, context); - const result2 = func(...jParams); - return this.lowerReturnValue(result2, context.getMemory(), context, out); - } - }; - exports.FunctionType = FunctionType2; - var ConstructorType = class extends Callable { - constructor(witName, params, returnType) { - super(witName, params, returnType); - } - callHost(clazz, params, resourceManager, context) { - const returnFlatTypes = this.returnType === void 0 ? 0 : this.returnType.flatTypes.length; - if (returnFlatTypes !== 1) { - throw new ComponentModelTrap(`Expected exactly one return type, but got ${returnFlatTypes}.`); - } - const memory = context.getMemory(); - const jParams = this.liftParamValues(params, memory, context); - const obj = new clazz(...jParams); - const handle = resourceManager.$handle(obj); - return handle; - } - }; - exports.ConstructorType = ConstructorType; - var DestructorType = class extends Callable { - constructor(witName, params) { - super(witName, params); - } - callHost(params, resourceManager) { - const handle = params[0]; - if (typeof handle === "bigint" || !$u32.valid(handle)) { - throw new ComponentModelTrap(`Object handle must be a number (u32), but got ${handle}.`); - } - const resource = resourceManager.$resource(handle); - resource["$drop"] !== void 0 && resource["$drop"](); - resourceManager.$drop(handle); - } - }; - exports.DestructorType = DestructorType; - var StaticMethodType = class extends Callable { - constructor(witName, params, returnType) { - super(witName, params, returnType); - } - callHost(func, params, context) { - const [jParams, out] = this.getParamValuesForHostCall(params, context); - const result2 = func(...jParams); - return this.lowerReturnValue(result2, context.getMemory(), context, out); - } - }; - exports.StaticMethodType = StaticMethodType; - var MethodType = class extends Callable { - constructor(witName, params, returnType) { - super(witName, params, returnType); - } - callHost(methodName, params, resourceManager, context) { - if (params.length === 0) { - throw new ComponentModelTrap(`Method calls must have at least one parameter (the object pointer).`); - } - const handle = params.shift(); - if (typeof handle !== "number") { - throw new ComponentModelTrap(`Object handle must be a number (u32), but got ${handle}.`); - } - const [jParams, out] = this.getParamValuesForHostCall(params, context); - const resource = resourceManager.$resource(handle); - const memory = context.getMemory(); - const result2 = resource[methodName](...jParams); - return this.lowerReturnValue(result2, memory, context, out); - } - callWasmMethod(params, wasmFunction, resourceManager, context) { - const memory = context.getMemory(); - const obj = params.shift(); - const handle = obj.$handle ?? resourceManager.$handle(obj); - const wasmValues = this.lowerParamValues(params, memory, context, void 0); - let resultRange = void 0; - let result2; - if (this.returnType !== void 0 && this.returnType.flatTypes.length > FunctionType2.MAX_FLAT_RESULTS) { - resultRange = this.returnType.alloc(memory); - result2 = wasmFunction(handle, ...wasmValues, resultRange.ptr); - } else { - result2 = wasmFunction(handle, ...wasmValues); - } - return this.liftReturnValue(result2, resultRange?.ptr, memory, context); - } - }; - exports.MethodType = MethodType; - var ResourceHandleType = class { - constructor(witName) { - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - __publicField(this, "witName"); - this.witName = witName; - this.kind = ComponentModelTypeKind.resourceHandle; - this.size = exports.u32.size; - this.alignment = exports.u32.alignment; - this.flatTypes = exports.u32.flatTypes; - } - load(memory, offset, context) { - return exports.u32.load(memory, offset, context); - } - liftFlat(memory, values, context) { - return exports.u32.liftFlat(memory, values, context); - } - alloc(memory) { - return exports.u32.alloc(memory); - } - store(memory, offset, value, context) { - exports.u32.store(memory, offset, value, context); - } - lowerFlat(result2, memory, value, context) { - exports.u32.lowerFlat(result2, memory, value, context); - } - copy(dest, dest_offset, src, src_offset, context) { - exports.u32.copy(dest, dest_offset, src, src_offset, context); - } - }; - exports.ResourceHandleType = ResourceHandleType; - var ResourceType = class { - constructor(witName, id) { - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - __publicField(this, "witName"); - __publicField(this, "id"); - __publicField(this, "callables"); - this.kind = ComponentModelTypeKind.resource; - this.size = exports.u32.size; - this.alignment = exports.u32.alignment; - this.flatTypes = exports.u32.flatTypes; - this.witName = witName; - this.id = id; - this.callables = /* @__PURE__ */ new Map(); - } - addConstructor(jsName, func) { - this.callables.set(jsName, func); - } - addDestructor(jsName, func) { - this.callables.set(jsName, func); - } - addStaticMethod(jsName, func) { - this.callables.set(jsName, func); - } - addMethod(jsName, func) { - this.callables.set(jsName, func); - } - getCallable(jsName) { - const result2 = this.callables.get(jsName); - if (result2 === void 0) { - throw new ComponentModelTrap(`Method '${jsName}' not found on resource '${this.witName}'.`); - } - return result2; - } - load(memory, offset, context) { - const handle = exports.u32.load(memory, offset, context); - return context.resources.get(this.id).$resource(handle); - } - liftFlat(memory, values, context) { - const handle = exports.u32.liftFlat(memory, values, context); - return context.resources.get(this.id).$resource(handle); - } - alloc(memory) { - return exports.u32.alloc(memory); - } - store(memory, offset, value, context) { - const handle = context.resources.get(this.id).$handle(value); - exports.u32.store(memory, offset, handle, context); - } - lowerFlat(result2, memory, value, context) { - const handle = context.resources.get(this.id).$handle(value); - exports.u32.lowerFlat(result2, memory, handle, context); - } - copy(dest, dest_offset, src, src_offset, context) { - exports.u32.copy(dest, dest_offset, src, src_offset, context); - } - }; - exports.ResourceType = ResourceType; - var AbstractWrapperType = class { - constructor(kind, wrapped) { - __publicField(this, "kind"); - __publicField(this, "size"); - __publicField(this, "alignment"); - __publicField(this, "flatTypes"); - __publicField(this, "wrapped"); - this.kind = kind; - this.wrapped = wrapped; - this.size = exports.u32.size; - this.alignment = exports.u32.alignment; - this.flatTypes = exports.u32.flatTypes; - } - load(memory, offset, context) { - return this.wrapped.load(memory, offset, context); - } - liftFlat(memory, values, context) { - return this.wrapped.liftFlat(memory, values, context); - } - alloc(memory) { - return exports.u32.alloc(memory); - } - store(memory, offset, value, context) { - return this.wrapped.store(memory, offset, value, context); - } - lowerFlat(result2, memory, value, context) { - return this.wrapped.lowerFlat(result2, memory, value, context); - } - copy(dest, dest_offset, src, src_offset, context) { - return this.wrapped.copy(dest, dest_offset, src, src_offset, context); - } - }; - var BorrowType = class extends AbstractWrapperType { - constructor(type) { - super(ComponentModelTypeKind.borrow, type); - } - }; - exports.BorrowType = BorrowType; - var OwnType = class extends AbstractWrapperType { - constructor(type) { - super(ComponentModelTypeKind.own, type); - } - }; - exports.OwnType = OwnType; - var ComponentModelTypeVisitor; - (function(ComponentModelTypeVisitor2) { - function visit(type, visitor) { - switch (type.kind) { - case ComponentModelTypeKind.u8: - visitor.visitU8 !== void 0 && visitor.visitU8(type); - break; - case ComponentModelTypeKind.u16: - visitor.visitU16 !== void 0 && visitor.visitU16(type); - break; - case ComponentModelTypeKind.u32: - visitor.visitU32 !== void 0 && visitor.visitU32(type); - break; - case ComponentModelTypeKind.u64: - visitor.visitU64 !== void 0 && visitor.visitU64(type); - break; - case ComponentModelTypeKind.s8: - visitor.visitS8 !== void 0 && visitor.visitS8(type); - break; - case ComponentModelTypeKind.s16: - visitor.visitS16 !== void 0 && visitor.visitS16(type); - break; - case ComponentModelTypeKind.s32: - visitor.visitS32 !== void 0 && visitor.visitS32(type); - break; - case ComponentModelTypeKind.s64: - visitor.visitS64 !== void 0 && visitor.visitS64(type); - break; - case ComponentModelTypeKind.float32: - visitor.visitFloat32 !== void 0 && visitor.visitFloat32(type); - break; - case ComponentModelTypeKind.float64: - visitor.visitFloat64 !== void 0 && visitor.visitFloat64(type); - break; - case ComponentModelTypeKind.bool: - visitor.visitBool !== void 0 && visitor.visitBool(type); - break; - case ComponentModelTypeKind.string: - visitor.visitString !== void 0 && visitor.visitString(type); - break; - case ComponentModelTypeKind.enum: - visitor.visitEnum !== void 0 && visitor.visitEnum(type); - break; - case ComponentModelTypeKind.flags: - visitor.visitFlags !== void 0 && visitor.visitFlags(type); - break; - case ComponentModelTypeKind.borrow: - visitor.visitBorrow !== void 0 && visitor.visitBorrow(type); - break; - case ComponentModelTypeKind.own: - visitor.visitOwn !== void 0 && visitor.visitOwn(type); - break; - case ComponentModelTypeKind.resource: - visitor.visitResource !== void 0 && visitor.visitResource(type); - break; - case ComponentModelTypeKind.resourceHandle: - visitor.visitResourceHandle !== void 0 && visitor.visitResourceHandle(type); - break; - case ComponentModelTypeKind.list: - if (visitor.visitList !== void 0 && visitor.visitList(type)) { - visit(type.elementType, visitor); - } - visitor.endVisitList !== void 0 && visitor.endVisitList(type); - break; - case ComponentModelTypeKind.record: - if (visitor.visitRecord !== void 0 && visitor.visitRecord(type) || visitor.visitRecord === void 0) { - for (const field of type.fields) { - visit(field.type, visitor); - } - } - visitor.endVisitRecord !== void 0 && visitor.endVisitRecord(type); - break; - case ComponentModelTypeKind.tuple: - if (visitor.visitTuple !== void 0 && visitor.visitTuple(type) || visitor.visitTuple === void 0) { - for (const field of type.fields) { - visit(field.type, visitor); - } - } - visitor.endVisitTuple !== void 0 && visitor.endVisitTuple(type); - break; - case ComponentModelTypeKind.variant: - if (visitor.visitVariant !== void 0 && visitor.visitVariant(type) || visitor.visitVariant === void 0) { - for (const field of type.cases) { - field.type !== void 0 && visit(field.type, visitor); - } - } - visitor.endVisitVariant !== void 0 && visitor.endVisitVariant(type); - break; - case ComponentModelTypeKind.option: - if (visitor.visitOption !== void 0 && visitor.visitOption(type) || visitor.visitOption === void 0) { - visit(type.valueType, visitor); - } - visitor.endVisitOption !== void 0 && visitor.endVisitOption(type); - break; - case ComponentModelTypeKind.result: - if (visitor.visitResult !== void 0 && visitor.visitResult(type) || visitor.visitResult === void 0) { - for (const field of type.cases) { - field.type !== void 0 && visit(field.type, visitor); - } - } - visitor.endVisitResult !== void 0 && visitor.endVisitResult(type); - break; - default: - throw new Error(`Unknown type kind ${type.kind}`); - } - } - ComponentModelTypeVisitor2.visit = visit; - })(ComponentModelTypeVisitor || (exports.ComponentModelTypeVisitor = ComponentModelTypeVisitor = {})); - var InterfaceType; - (function(InterfaceType2) { - function is(value) { - return typeof value === "object" && typeof value.id === "string" && typeof value.witName === "string" && value.types instanceof Map && value.functions instanceof Map && value.resources instanceof Map; - } - InterfaceType2.is = is; - })(InterfaceType || (exports.InterfaceType = InterfaceType = {})); - var PackageType; - (function(PackageType2) { - function is(value) { - return typeof value === "object" && typeof value.id === "string" && typeof value.witName === "string" && value.interfaces instanceof Map; - } - PackageType2.is = is; - })(PackageType || (exports.PackageType = PackageType = {})); - var WasmContext2; - (function(WasmContext3) { - class Default { - constructor() { - __publicField(this, "memory"); - __publicField(this, "options"); - __publicField(this, "resources"); - this.options = { encoding: "utf-8" }; - this.resources = new ResourceManagers.Default(); - } - initialize(memory) { - if (this.memory !== void 0) { - throw new MemoryError(`Memory is already initialized.`); - } - this.memory = memory; - } - getMemory() { - if (this.memory === void 0) { - throw new MemoryError(`Memory not yet initialized.`); - } - return this.memory; - } - } - WasmContext3.Default = Default; - })(WasmContext2 || (exports.WasmContext = WasmContext2 = {})); - var Resource = class { - constructor() { - __publicField(this, "_handle"); - this._handle = void 0; - } - get $handle() { - return this._handle; - } - set $handle(value) { - if (value === void 0) { - throw new ComponentModelTrap("Cannot set undefined handle"); - } - if (this._handle !== void 0) { - throw new ComponentModelTrap(`Cannot set handle twice. Current handle is ${this._handle} new handle is ${value}.`); - } - this._handle = value; - } - }; - exports.Resource = Resource; - var Imports2; - (function(Imports3) { - function create(functions, resources, service, context) { - const result2 = /* @__PURE__ */ Object.create(null); - if (functions !== void 0) { - for (const [funcName, func] of functions) { - result2[func.witName] = createFunction(func, service[funcName], context); - } - } - if (resources !== void 0) { - for (const [resourceName, resource] of resources) { - const clazz = service[resourceName]; - let resourceManager; - if (context.resources.has(resource.id)) { - resourceManager = context.resources.get(resource.id); - } else { - resourceManager = ResourceManager.from(clazz) ?? new ResourceManager.Default(); - context.resources.set(resource.id, resourceManager); - } - for (const [callableName, callable] of resource.callables) { - if (callable instanceof ConstructorType) { - result2[callable.witName] = createConstructorFunction(callable, clazz, resourceManager, context); - } else if (callable instanceof StaticMethodType) { - result2[callable.witName] = createStaticMethodFunction(callable, service[resourceName][callableName], context); - } else if (callable instanceof MethodType) { - result2[callable.witName] = createMethodFunction(callableName, callable, resourceManager, context); - } else if (callable instanceof DestructorType) { - result2[callable.witName] = createDestructorFunction(callable, resourceManager); - } - } - } - } - return result2; - } - Imports3.create = create; - function createFunction(callable, serviceFunction, context) { - return function(...params) { - return callable.callHost(serviceFunction, params, context); - }; - } - function createConstructorFunction(callable, clazz, manager, context) { - return function(...params) { - return callable.callHost(clazz, params, manager, context); - }; - } - function createDestructorFunction(callable, manager) { - return function(...params) { - return callable.callHost(params, manager); - }; - } - function createStaticMethodFunction(callable, func, context) { - return function(...params) { - return callable.callHost(func, params, context); - }; - } - function createMethodFunction(name, callable, manager, context) { - return function(...params) { - return callable.callHost(name, params, manager, context); - }; - } - })(Imports2 || (exports.Imports = Imports2 = {})); - var Module; - (function(Module2) { - function createObjectModule(resource, wasm, context) { - let resourceManager; - if (context.resources.has(resource.id)) { - resourceManager = context.resources.get(resource.id); - } else { - resourceManager = new ResourceManager.Default(); - context.resources.set(resource.id, resourceManager); - } - const result2 = /* @__PURE__ */ Object.create(null); - for (const [name, callable] of resource.callables) { - if (callable instanceof ConstructorType) { - result2[name] = createConstructorFunction(callable, wasm[callable.witName], context); - } else if (callable instanceof MethodType) { - result2[name] = createMethodFunction(callable, wasm[callable.witName], resourceManager, context); - } else if (callable instanceof DestructorType) { - result2[name] = createDestructorFunction(callable, wasm[callable.witName], context); - } - } - return result2; - } - Module2.createObjectModule = createObjectModule; - function createClassModule(resource, wasm, context) { - if (!context.resources.has(resource.id)) { - context.resources.set(resource.id, new ResourceManager.Default()); - } - const result2 = /* @__PURE__ */ Object.create(null); - for (const [name, callable] of resource.callables) { - if (callable instanceof StaticMethodType) { - result2[name] = createStaticMethodFunction(callable, wasm[callable.witName], context); - } - } - return result2; - } - Module2.createClassModule = createClassModule; - function createConstructorFunction(callable, wasmFunction, context) { - return (...params) => { - return callable.callWasm(params, wasmFunction, context); - }; - } - function createDestructorFunction(callable, wasmFunction, context) { - return (...params) => { - return callable.callWasm(params, wasmFunction, context); - }; - } - function createStaticMethodFunction(callable, wasmFunction, context) { - return (...params) => { - return callable.callWasm(params, wasmFunction, context); - }; - } - function createMethodFunction(callable, wasmFunction, manager, context) { - return (...params) => { - return callable.callWasmMethod(params, wasmFunction, manager, context); - }; - } - })(Module || (exports.Module = Module = {})); - var Exports2; - (function(Exports3) { - function filter(exports2, functions, resources, id, version, _context) { - const key = version !== void 0 ? `${id}@${version}` : id; - let result2 = exports2[key]; - if (result2 !== null && typeof result2 === "object") { - return result2; - } - result2 = /* @__PURE__ */ Object.create(null); - if (functions !== void 0) { - for (const func of functions.values()) { - const funcKey = `${key}#${func.witName}`; - const candidate = exports2[funcKey]; - if (candidate !== null && candidate !== void 0) { - result2[func.witName] = candidate; - } - } - } - if (resources !== void 0) { - for (const resource of resources.values()) { - for (const callable of resource.callables.values()) { - const callableKey = `${key}#${callable.witName}`; - const candidate = exports2[callableKey]; - if (candidate !== null && candidate !== void 0) { - result2[callable.witName] = candidate; - } - } - } - } - return result2; - } - Exports3.filter = filter; - function bind(functions, resources, wasm, context) { - const result2 = /* @__PURE__ */ Object.create(null); - if (functions !== void 0) { - for (const [name, func] of functions) { - result2[name] = createFunction(func, wasm[func.witName], context); - } - } - if (resources !== void 0) { - for (const [name, , factory] of resources) { - result2[name] = factory(wasm, context); - } - } - return result2; - } - Exports3.bind = bind; - function createFunction(func, wasmFunction, context) { - return (...params) => { - return func.callWasm(params, wasmFunction, context); - }; - } - })(Exports2 || (exports.Exports = Exports2 = {})); - } -}); - -// node_modules/@vscode/wasm-component-model/lib/common/api.js -var require_api = __commonJS({ - "node_modules/@vscode/wasm-component-model/lib/common/api.js"(exports) { - "use strict"; - var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __exportStar = exports && exports.__exportStar || function(m, exports2) { - for (var p in m) - if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) - __createBinding(exports2, m, p); - }; - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.RAL = void 0; - var ral_1 = __importDefault(require_ral()); - exports.RAL = ral_1.default; - __exportStar(require_componentModel(), exports); - } -}); - -// node_modules/@vscode/wasm-component-model/lib/browser/main.js -var require_main = __commonJS({ - "node_modules/@vscode/wasm-component-model/lib/browser/main.js"(exports) { - "use strict"; - var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __exportStar = exports && exports.__exportStar || function(m, exports2) { - for (var p in m) - if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) - __createBinding(exports2, m, p); - }; - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var ril_1 = __importDefault(require_ril()); - ril_1.default.install(); - __exportStar(require_api(), exports); - } -}); - -// src/extension.ts -var extension_exports = {}; -__export(extension_exports, { - activate: () => activate -}); -module.exports = __toCommonJS(extension_exports); -var vscode = __toESM(require("vscode")); -var import_wasm_component_model = __toESM(require_main()); - -// src/example.ts -var $wcm = __toESM(require_main()); -var example; -((example2) => { - let Types2; - ((Types3) => { - let Operation; - ((Operation2) => { - Operation2.add = "add"; - function Add(value) { - return new VariantImpl(Operation2.add, value); - } - Operation2.Add = Add; - Operation2.sub = "sub"; - function Sub(value) { - return new VariantImpl(Operation2.sub, value); - } - Operation2.Sub = Sub; - Operation2.mul = "mul"; - function Mul(value) { - return new VariantImpl(Operation2.mul, value); - } - Operation2.Mul = Mul; - Operation2.div = "div"; - function Div(value) { - return new VariantImpl(Operation2.div, value); - } - Operation2.Div = Div; - function _ctor(t, v) { - return new VariantImpl(t, v); - } - Operation2._ctor = _ctor; - class VariantImpl { - constructor(t, value) { - __publicField(this, "_tag"); - __publicField(this, "_value"); - this._tag = t; - this._value = value; - } - get tag() { - return this._tag; - } - get value() { - return this._value; - } - isAdd() { - return this._tag === Operation2.add; - } - isSub() { - return this._tag === Operation2.sub; - } - isMul() { - return this._tag === Operation2.mul; - } - isDiv() { - return this._tag === Operation2.div; - } - } - })(Operation = Types3.Operation || (Types3.Operation = {})); - })(Types2 = example2.Types || (example2.Types = {})); -})(example || (example = {})); -((example2) => { - let Types2; - ((Types3) => { - let $; - (($2) => { - $2.Operands = new $wcm.RecordType([ - ["left", $wcm.u32], - ["right", $wcm.u32] - ]); - $2.Operation = new $wcm.VariantType([["add", $2.Operands], ["sub", $2.Operands], ["mul", $2.Operands], ["div", $2.Operands]], example2.Types.Operation._ctor); - })($ = Types3.$ || (Types3.$ = {})); - })(Types2 = example2.Types || (example2.Types = {})); - ((Types3) => { - let _; - ((_2) => { - _2.id = "vscode:example/types"; - _2.witName = "types"; - _2.types = /* @__PURE__ */ new Map([ - ["Operands", Types3.$.Operands], - ["Operation", Types3.$.Operation] - ]); - })(_ = Types3._ || (Types3._ = {})); - })(Types2 = example2.Types || (example2.Types = {})); - let calculator2; - ((calculator3) => { - let $; - (($2) => { - $2.Operation = Types2.$.Operation; - let Imports2; - ((Imports3) => { - Imports3.log = new $wcm.FunctionType("log", [ - ["msg", $wcm.wstring] - ], void 0); - })(Imports2 = $2.Imports || ($2.Imports = {})); - let Exports2; - ((Exports3) => { - Exports3.calc = new $wcm.FunctionType("calc", [ - ["o", $2.Operation] - ], $wcm.u32); - })(Exports2 = $2.Exports || ($2.Exports = {})); - })($ = calculator3.$ || (calculator3.$ = {})); - })(calculator2 = example2.calculator || (example2.calculator = {})); - ((calculator3) => { - let _; - ((_2) => { - _2.id = "vscode:example/calculator"; - _2.witName = "calculator"; - let Imports2; - ((Imports3) => { - Imports3.functions = /* @__PURE__ */ new Map([ - ["log", calculator3.$.Imports.log] - ]); - Imports3.interfaces = /* @__PURE__ */ new Map([ - ["Types", Types2._] - ]); - })(Imports2 = _2.Imports || (_2.Imports = {})); - let Exports2; - ((Exports3) => { - Exports3.functions = /* @__PURE__ */ new Map([ - ["calc", calculator3.$.Exports.calc] - ]); - })(Exports2 = _2.Exports || (_2.Exports = {})); - function createImports(service, context) { - const result = /* @__PURE__ */ Object.create(null); - result["$root"] = $wcm.Imports.create(Imports2.functions, void 0, service, context); - return result; - } - _2.createImports = createImports; - function bindExports(exports, context) { - const result = /* @__PURE__ */ Object.create(null); - Object.assign(result, $wcm.Exports.bind(Exports2.functions, void 0, exports, context)); - return result; - } - _2.bindExports = bindExports; - })(_ = calculator3._ || (calculator3._ = {})); - })(calculator2 = example2.calculator || (example2.calculator = {})); -})(example || (example = {})); -((example2) => { - let _; - ((_2) => { - _2.id = "vscode:example"; - _2.witName = "example"; - _2.interfaces = /* @__PURE__ */ new Map([ - ["Types", example2.Types._] - ]); - _2.worlds = /* @__PURE__ */ new Map([ - ["calculator", example2.calculator._] - ]); - })(_ = example2._ || (example2._ = {})); -})(example || (example = {})); - -// src/extension.ts -var calculator = example.calculator; -var Types = example.Types; -async function activate(context) { - const channel = vscode.window.createOutputChannel("Calculator"); - context.subscriptions.push(channel); - const log = vscode.window.createOutputChannel("Calculator - Log", { log: true }); - context.subscriptions.push(log); - const filename = vscode.Uri.joinPath(context.extensionUri, "target", "wasm32-unknown-unknown", "debug", "calculator.wasm"); - const bits = await vscode.workspace.fs.readFile(filename); - const module2 = await WebAssembly.compile(bits); - const service = { - log: (msg) => { - log.info(msg); - } - }; - const wasmContext = new import_wasm_component_model.WasmContext.Default(); - const instance = await WebAssembly.instantiate(module2, calculator._.createImports(service, wasmContext)); - wasmContext.initialize(new import_wasm_component_model.Memory.Default(instance.exports)); - const api = calculator._.bindExports(instance.exports, wasmContext); - context.subscriptions.push(vscode.commands.registerCommand("vscode-samples.wasm-component-model.run", () => { - channel.show(); - channel.appendLine("Running calculator example"); - channel.appendLine(`Add ${api.calc(Types.Operation.Add({ left: 1, right: 2 }))}`); - channel.appendLine(`Sub ${api.calc(Types.Operation.Sub({ left: 10, right: 8 }))}`); - channel.appendLine(`Mul ${api.calc(Types.Operation.Mul({ left: 3, right: 7 }))}`); - channel.appendLine(`Div ${api.calc(Types.Operation.Div({ left: 10, right: 2 }))}`); - })); -} -//# sourceMappingURL=extension.js.map diff --git a/wasm-component-model/dist/web/extension.js.map b/wasm-component-model/dist/web/extension.js.map deleted file mode 100644 index aec35523..00000000 --- a/wasm-component-model/dist/web/extension.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../node_modules/@vscode/wasm-component-model/lib/common/ral.js", "../../node_modules/@vscode/wasm-component-model/lib/browser/ril.js", "../../node_modules/uuid/dist/commonjs-browser/rng.js", "../../node_modules/uuid/dist/commonjs-browser/regex.js", "../../node_modules/uuid/dist/commonjs-browser/validate.js", "../../node_modules/uuid/dist/commonjs-browser/stringify.js", "../../node_modules/uuid/dist/commonjs-browser/v1.js", "../../node_modules/uuid/dist/commonjs-browser/parse.js", "../../node_modules/uuid/dist/commonjs-browser/v35.js", "../../node_modules/uuid/dist/commonjs-browser/md5.js", "../../node_modules/uuid/dist/commonjs-browser/v3.js", "../../node_modules/uuid/dist/commonjs-browser/native.js", "../../node_modules/uuid/dist/commonjs-browser/v4.js", "../../node_modules/uuid/dist/commonjs-browser/sha1.js", "../../node_modules/uuid/dist/commonjs-browser/v5.js", "../../node_modules/uuid/dist/commonjs-browser/nil.js", "../../node_modules/uuid/dist/commonjs-browser/version.js", "../../node_modules/uuid/dist/commonjs-browser/index.js", "../../node_modules/@vscode/wasm-component-model/lib/common/componentModel.js", "../../node_modules/@vscode/wasm-component-model/lib/common/api.js", "../../node_modules/@vscode/wasm-component-model/lib/browser/main.js", "../../src/extension.ts", "../../src/example.ts"], - "sourcesContent": ["\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet _ral;\nfunction RAL() {\n if (_ral === undefined) {\n throw new Error(`No runtime abstraction layer installed`);\n }\n return _ral;\n}\n(function (RAL) {\n function install(ral) {\n if (ral === undefined) {\n throw new Error(`No runtime abstraction layer provided`);\n }\n _ral = ral;\n }\n RAL.install = install;\n function isInstalled() {\n return _ral !== undefined;\n }\n RAL.isInstalled = isInstalled;\n})(RAL || (RAL = {}));\nexports.default = RAL;\n", "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst ral_1 = __importDefault(require(\"../common/ral\"));\n// In Browser environments we can only encode / decode utf-8\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nconst _ril = Object.freeze({\n TextEncoder: Object.freeze({\n create(_encoding = 'utf-8') {\n return encoder;\n }\n }),\n TextDecoder: Object.freeze({\n create(_encoding = 'utf-8') {\n return {\n decode(input) {\n if (input === undefined) {\n return decoder.decode(input);\n }\n else {\n if (input.buffer instanceof SharedArrayBuffer) {\n return decoder.decode(input.slice(0));\n }\n else {\n return decoder.decode(input);\n }\n }\n }\n };\n }\n }),\n console: console,\n timer: Object.freeze({\n setTimeout(callback, ms, ...args) {\n const handle = setTimeout(callback, ms, ...args);\n return { dispose: () => clearTimeout(handle) };\n },\n setImmediate(callback, ...args) {\n const handle = setTimeout(callback, 0, ...args);\n return { dispose: () => clearTimeout(handle) };\n },\n setInterval(callback, ms, ...args) {\n const handle = setInterval(callback, ms, ...args);\n return { dispose: () => clearInterval(handle) };\n },\n })\n});\nfunction RIL() {\n return _ril;\n}\n(function (RIL) {\n function install() {\n if (!ral_1.default.isInstalled()) {\n ral_1.default.install(_ril);\n }\n }\n RIL.install = install;\n})(RIL || (RIL = {}));\nif (!ral_1.default.isInstalled()) {\n ral_1.default.install(_ril);\n}\nexports.default = RIL;\n", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\n\nfunction rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (let i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n const output = [];\n const length32 = input.length * 32;\n const hexTab = '0123456789abcdef';\n\n for (let i = 0; i < length32; i += 8) {\n const x = input[i >> 5] >>> i % 32 & 0xff;\n const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n let a = 1732584193;\n let b = -271733879;\n let c = -1732584194;\n let d = 271733878;\n\n for (let i = 0; i < x.length; i += 16) {\n const olda = a;\n const oldb = b;\n const oldc = c;\n const oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n const length8 = input.length * 8;\n const output = new Uint32Array(getOutputLength(length8));\n\n for (let i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n const lsw = (x & 0xffff) + (y & 0xffff);\n const msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nconst randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nvar _default = {\n randomUUID\n};\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function get() {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function get() {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function get() {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function get() {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function get() {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function get() {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function get() {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function get() {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function get() {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OptionType = exports.option = exports.EnumType = exports.VariantType = exports.FlagsType = exports.TupleType = exports.RecordType = exports.Float64ArrayType = exports.Float32ArrayType = exports.BigUint64ArrayType = exports.Uint32ArrayType = exports.Uint16ArrayType = exports.Uint8ArrayType = exports.BigInt64ArrayType = exports.Int32ArrayType = exports.Int16ArrayType = exports.Int8ArrayType = exports.ListType = exports.wstring = exports.wchar = exports.ptr = exports.size = exports.byte = exports.float64 = exports.float32 = exports.s64 = exports.s32 = exports.s16 = exports.s8 = exports.u64 = exports.u32 = exports.u16 = exports.u8 = exports.bool = exports.ComponentModelTypeKind = exports.FlatTuple = exports.f64 = exports.f32 = exports.i64 = exports.i32 = exports.FlatTypeKind = exports.Memory = exports.MemoryRange = exports.ReadonlyMemoryRange = exports.BaseMemoryRange = exports.MemoryError = exports.Alignment = exports.ResourceManagers = exports.ResourceManager = exports.ComponentModelTrap = void 0;\nexports.Exports = exports.Module = exports.Imports = exports.Resource = exports.WasmContext = exports.PackageType = exports.InterfaceType = exports.ComponentModelTypeVisitor = exports.OwnType = exports.BorrowType = exports.ResourceType = exports.ResourceHandleType = exports.MethodType = exports.StaticMethodType = exports.DestructorType = exports.ConstructorType = exports.FunctionType = exports.ResultType = exports.result = void 0;\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst ral_1 = __importDefault(require(\"./ral\"));\nconst uuid = __importStar(require(\"uuid\"));\n// Type arrays are store either little or big endian depending on the platform.\n// The component model requires little endian so we throw for now if the platform\n// is big endian. We can alternatively use data views in type arrays component\n// model types to support big endian platforms\nconst isLittleEndian = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\nif (!isLittleEndian) {\n throw new Error('Big endian platforms are currently not supported.');\n}\nclass ComponentModelTrap extends Error {\n constructor(message) {\n super(message);\n }\n}\nexports.ComponentModelTrap = ComponentModelTrap;\nvar ResourceManager;\n(function (ResourceManager) {\n function from(obj) {\n while (obj !== undefined) {\n const self = obj;\n if (typeof self.$drop === 'function' && typeof self.$handle === 'function' && typeof self.$resource === 'function') {\n return self;\n }\n obj = obj.$manager;\n }\n return undefined;\n }\n ResourceManager.from = from;\n class Default {\n h2r;\n handleCounter;\n constructor() {\n this.h2r = new Map();\n this.handleCounter = 1;\n }\n $handle(value) {\n if (value.$handle !== undefined) {\n return value.$handle;\n }\n const handle = this.handleCounter++;\n this.h2r.set(handle, value);\n value.$handle = handle;\n return handle;\n }\n $resource(resource) {\n const value = this.h2r.get(resource);\n if (value === undefined) {\n throw new ComponentModelTrap(`Unknown resource handle ${resource}`);\n }\n return value;\n }\n $drop(resource) {\n this.h2r.delete(resource);\n }\n }\n ResourceManager.Default = Default;\n})(ResourceManager || (exports.ResourceManager = ResourceManager = {}));\nvar ResourceManagers;\n(function (ResourceManagers) {\n class Default {\n managers;\n constructor() {\n this.managers = new Map();\n }\n has(id) {\n return this.managers.has(id);\n }\n set(id, manager) {\n if (this.managers.has(id)) {\n throw new ComponentModelTrap(`Resource manager ${id} already registered.`);\n }\n this.managers.set(id, manager);\n }\n get(id) {\n const manager = this.managers.get(id);\n if (manager === undefined) {\n throw new ComponentModelTrap(`Resource manager ${id} not found.`);\n }\n return manager;\n }\n }\n ResourceManagers.Default = Default;\n})(ResourceManagers || (exports.ResourceManagers = ResourceManagers = {}));\nvar BigInts;\n(function (BigInts) {\n const MAX_VALUE_AS_BIGINT = BigInt(Number.MAX_VALUE);\n function asNumber(value) {\n if (value > MAX_VALUE_AS_BIGINT) {\n throw new ComponentModelTrap('Value too big for number');\n }\n return Number(value);\n }\n BigInts.asNumber = asNumber;\n function max(...args) {\n return args.reduce((m, e) => e > m ? e : m);\n }\n BigInts.max = max;\n function min(...args) {\n return args.reduce((m, e) => e < m ? e : m);\n }\n BigInts.min = min;\n})(BigInts || (BigInts = {}));\nconst utf8Decoder = (0, ral_1.default)().TextDecoder.create('utf-8');\nconst utf8Encoder = (0, ral_1.default)().TextEncoder.create('utf-8');\nvar Alignment;\n(function (Alignment) {\n Alignment[Alignment[\"byte\"] = 1] = \"byte\";\n Alignment[Alignment[\"halfWord\"] = 2] = \"halfWord\";\n Alignment[Alignment[\"word\"] = 4] = \"word\";\n Alignment[Alignment[\"doubleWord\"] = 8] = \"doubleWord\";\n})(Alignment || (exports.Alignment = Alignment = {}));\n(function (Alignment) {\n function align(ptr, alignment) {\n return Math.ceil(ptr / alignment) * alignment;\n }\n Alignment.align = align;\n function getAlignment(ptr) {\n if (ptr % Alignment.doubleWord === 0) {\n return Alignment.doubleWord;\n }\n if (ptr % Alignment.word === 0) {\n return Alignment.word;\n }\n if (ptr % Alignment.halfWord === 0) {\n return Alignment.halfWord;\n }\n return Alignment.byte;\n }\n Alignment.getAlignment = getAlignment;\n})(Alignment || (exports.Alignment = Alignment = {}));\nconst align = Alignment.align;\nclass MemoryError extends Error {\n constructor(message) {\n super(message);\n }\n}\nexports.MemoryError = MemoryError;\nclass BaseMemoryRange {\n _memory;\n _ptr;\n _size;\n _alignment;\n _view;\n constructor(memory, ptr, size) {\n this._memory = memory;\n this._ptr = ptr;\n this._size = size;\n this._alignment = Alignment.getAlignment(ptr);\n }\n get memory() {\n return this._memory;\n }\n get ptr() {\n return this._ptr;\n }\n get size() {\n return this._size;\n }\n get alignment() {\n return this._alignment;\n }\n get view() {\n if (this._view === undefined || this._view.buffer !== this._memory.buffer) {\n this._view = new DataView(this._memory.buffer, this._ptr, this._size);\n }\n return this._view;\n }\n getUint8(offset) {\n return this.view.getUint8(offset);\n }\n getInt8(offset) {\n return this.view.getInt8(offset);\n }\n getUint16(offset) {\n this.assertAlignment(offset, Alignment.halfWord);\n return this.view.getUint16(offset, true);\n }\n getInt16(offset) {\n this.assertAlignment(offset, Alignment.halfWord);\n return this.view.getInt16(offset, true);\n }\n getUint32(offset) {\n this.assertAlignment(offset, Alignment.word);\n return this.view.getUint32(offset, true);\n }\n getInt32(offset) {\n this.assertAlignment(offset, Alignment.word);\n return this.view.getInt32(offset, true);\n }\n getUint64(offset) {\n this.assertAlignment(offset, Alignment.doubleWord);\n return this.view.getBigUint64(offset, true);\n }\n getInt64(offset) {\n this.assertAlignment(offset, Alignment.doubleWord);\n return this.view.getBigInt64(offset, true);\n }\n getFloat32(offset) {\n this.assertAlignment(offset, Alignment.word);\n return this.view.getFloat32(offset, true);\n }\n getFloat64(offset) {\n this.assertAlignment(offset, Alignment.doubleWord);\n return this.view.getFloat64(offset, true);\n }\n getPtr(offset) {\n this.assertAlignment(offset, Alignment.word);\n return this.view.getUint32(offset, true);\n }\n getUint8Array(offset, length) {\n return this.getArray(offset, length, Uint8Array);\n }\n getInt8Array(offset, length) {\n return this.getArray(offset, length, Int8Array);\n }\n getUint16Array(byteOffset, length) {\n return this.getArray(byteOffset, length, Uint16Array);\n }\n getInt16Array(byteOffset, length) {\n return this.getArray(byteOffset, length, Int16Array);\n }\n getUint32Array(byteOffset, length) {\n return this.getArray(byteOffset, length, Uint32Array);\n }\n getInt32Array(byteOffset, length) {\n return this.getArray(byteOffset, length, Int32Array);\n }\n getUint64Array(byteOffset, length) {\n return this.getBigArray(byteOffset, length, BigUint64Array);\n }\n getInt64Array(byteOffset, length) {\n return this.getBigArray(byteOffset, length, BigInt64Array);\n }\n getFloat32Array(byteOffset, length) {\n return this.getArray(byteOffset, length, Float32Array);\n }\n getFloat64Array(byteOffset, length) {\n return this.getArray(byteOffset, length, Float64Array);\n }\n copyBytes(offset, length, into, into_offset) {\n if (offset + length > this.size) {\n throw new MemoryError(`Memory access is out of bounds. Accessing [${offset}, ${length}], allocated[${this.ptr}, ${this.size}]`);\n }\n const target = into.getUint8View(into_offset, length);\n target.set(new Uint8Array(this._memory.buffer, this.ptr + offset, length));\n }\n assertAlignment(offset, alignment) {\n if (alignment > this.alignment || offset % alignment !== 0) {\n throw new MemoryError(`Memory location is not aligned to ${alignment}. Allocated[${this.ptr},${this.size}]`);\n }\n }\n getArray(byteOffset, length, clazz) {\n length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT;\n if (!Number.isInteger(length)) {\n throw new MemoryError(`Length must be an integer value. Got ${length}.`);\n }\n const result = new clazz(length);\n result.set(new clazz(this._memory.buffer, this.ptr + byteOffset, length));\n return result;\n }\n getBigArray(byteOffset, length, clazz) {\n length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT;\n if (!Number.isInteger(length)) {\n throw new MemoryError(`Length must be an integer value. Got ${length}.`);\n }\n const result = new clazz(length);\n result.set(new clazz(this._memory.buffer, this.ptr + byteOffset, length));\n return result;\n }\n}\nexports.BaseMemoryRange = BaseMemoryRange;\nclass ReadonlyMemoryRange extends BaseMemoryRange {\n constructor(memory, ptr, size) {\n super(memory, ptr, size);\n }\n range(offset, size) {\n if (offset + size > this.size) {\n throw new MemoryError(`Memory access is out of bounds. Accessing [${offset}, ${size}], allocated[${this.ptr}, ${this.size}]`);\n }\n return new ReadonlyMemoryRange(this._memory, this.ptr + offset, size);\n }\n}\nexports.ReadonlyMemoryRange = ReadonlyMemoryRange;\nclass MemoryRange extends BaseMemoryRange {\n isAllocated;\n constructor(memory, ptr, size, isPreallocated = false) {\n super(memory, ptr, size);\n this.isAllocated = isPreallocated;\n }\n free() {\n if (typeof this._memory.free !== 'function') {\n throw new MemoryError(`Memory doesn't support free`);\n }\n this._memory.free(this);\n }\n range(offset, size) {\n if (offset + size > this.size) {\n throw new MemoryError(`Memory access is out of bounds. Accessing [${offset}, ${size}], allocated[${this.ptr}, ${this.size}]`);\n }\n return new MemoryRange(this._memory, this.ptr + offset, size);\n }\n setUint8(offset, value) {\n this.view.setUint8(offset, value);\n }\n setInt8(offset, value) {\n this.view.setInt8(offset, value);\n }\n setUint16(offset, value) {\n this.assertAlignment(offset, Alignment.halfWord);\n this.view.setUint16(offset, value, true);\n }\n setInt16(offset, value) {\n this.assertAlignment(offset, Alignment.halfWord);\n this.view.setInt16(offset, value, true);\n }\n setUint32(offset, value) {\n this.assertAlignment(offset, Alignment.word);\n this.view.setUint32(offset, value, true);\n }\n setInt32(offset, value) {\n this.assertAlignment(offset, Alignment.word);\n this.view.setInt32(offset, value, true);\n }\n setUint64(offset, value) {\n this.assertAlignment(offset, Alignment.doubleWord);\n this.view.setBigUint64(offset, value, true);\n }\n setInt64(offset, value) {\n this.assertAlignment(offset, Alignment.doubleWord);\n this.view.setBigInt64(offset, value, true);\n }\n setFloat32(offset, value) {\n this.assertAlignment(offset, Alignment.word);\n this.view.setFloat32(offset, value, true);\n }\n setFloat64(offset, value) {\n this.assertAlignment(offset, Alignment.doubleWord);\n this.view.setFloat64(offset, value, true);\n }\n setPtr(offset, value) {\n this.assertAlignment(offset, Alignment.word);\n this.view.setUint32(offset, value, true);\n }\n getUint8View(offset, length) {\n return this.getArrayView(offset, length, Uint8Array);\n }\n getInt8View(offset, length) {\n return this.getArrayView(offset, length, Int8Array);\n }\n getUint16View(offset, length) {\n return this.getArrayView(offset, length, Uint16Array);\n }\n getInt16View(offset, length) {\n return this.getArrayView(offset, length, Int16Array);\n }\n getUint32View(offset, length) {\n return this.getArrayView(offset, length, Uint32Array);\n }\n getInt32View(offset, length) {\n return this.getArrayView(offset, length, Int32Array);\n }\n getUint64View(offset, length) {\n return this.getBigArrayView(offset, length, BigUint64Array);\n }\n getInt64View(offset, length) {\n return this.getBigArrayView(offset, length, BigInt64Array);\n }\n getFloat32View(offset, length) {\n return this.getArrayView(offset, length, Float32Array);\n }\n getFloat64View(offset, length) {\n return this.getArrayView(offset, length, Float64Array);\n }\n setUint8Array(offset, bytes) {\n this.setArray(offset, bytes, Uint8Array);\n }\n setInt8Array(offset, bytes) {\n this.setArray(offset, bytes, Int8Array);\n }\n setUint16Array(offset, bytes) {\n this.setArray(offset, bytes, Uint16Array);\n }\n setInt16Array(offset, bytes) {\n this.setArray(offset, bytes, Int16Array);\n }\n setUint32Array(offset, bytes) {\n this.setArray(offset, bytes, Uint32Array);\n }\n setInt32Array(offset, bytes) {\n this.setArray(offset, bytes, Int32Array);\n }\n setUint64Array(offset, bytes) {\n this.setBigArray(offset, bytes, BigUint64Array);\n }\n setInt64Array(offset, bytes) {\n this.setBigArray(offset, bytes, BigInt64Array);\n }\n setFloat32Array(offset, bytes) {\n this.setArray(offset, bytes, Float32Array);\n }\n setFloat64Array(offset, bytes) {\n this.setArray(offset, bytes, Float64Array);\n }\n getArrayView(byteOffset, length, clazz) {\n length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT;\n if (!Number.isInteger(length)) {\n throw new MemoryError(`Length must be an integer value. Got ${length}.`);\n }\n return new clazz(this._memory.buffer, this.ptr + byteOffset, length);\n }\n getBigArrayView(byteOffset, length, clazz) {\n length = length ?? (this.size - byteOffset) / clazz.BYTES_PER_ELEMENT;\n if (!Number.isInteger(length)) {\n throw new MemoryError(`Length must be an integer value. Got ${length}.`);\n }\n return new clazz(this._memory.buffer, this.ptr + byteOffset, length);\n }\n setArray(byteOffset, bytes, clazz) {\n new clazz(this._memory.buffer, this.ptr + byteOffset, bytes.length).set(bytes);\n }\n setBigArray(byteOffset, bytes, clazz) {\n new clazz(this._memory.buffer, this.ptr + byteOffset, bytes.length).set(bytes);\n }\n}\nexports.MemoryRange = MemoryRange;\n/**\n * A memory of size 0. Doesn't allow any kind of operation on it.\n */\nclass NullMemory {\n id = 'b60336d2-c856-4767-af3b-f66e1ab6c507';\n buffer = new ArrayBuffer(0);\n alloc() {\n throw new MemoryError('Cannot allocate memory on a null memory.');\n }\n realloc() {\n throw new MemoryError('Cannot re-allocate memory on a null memory.');\n }\n preAllocated() {\n throw new MemoryError('Cannot point to pre-allocate memory on a null memory.');\n }\n readonly() {\n throw new MemoryError('Cannot point to readonly memory on a null memory.');\n }\n free() {\n throw new MemoryError('Cannot free memory on a null memory.');\n }\n}\nvar Memory;\n(function (Memory) {\n Memory.Null = new NullMemory();\n class Default {\n id;\n memory;\n cabi_realloc;\n constructor(exports, id) {\n if (exports.memory === undefined || exports.cabi_realloc === undefined) {\n throw new MemoryError('The exports object must contain a memory object and a cabi_realloc function.');\n }\n this.id = id ?? uuid.v4();\n this.memory = exports.memory;\n this.cabi_realloc = exports.cabi_realloc;\n }\n get buffer() {\n return this.memory.buffer;\n }\n alloc(align, size) {\n const ptr = this.cabi_realloc(0, 0, align, size);\n return new MemoryRange(this, ptr, size);\n }\n realloc(range, newSize) {\n const ptr = this.cabi_realloc(range.ptr, range.size, range.alignment, newSize);\n return new MemoryRange(this, ptr, newSize);\n }\n preAllocated(ptr, size) {\n return new MemoryRange(this, ptr, size);\n }\n readonly(ptr, size) {\n return new ReadonlyMemoryRange(this, ptr, size);\n }\n }\n Memory.Default = Default;\n})(Memory || (exports.Memory = Memory = {}));\nvar FlatTypeKind;\n(function (FlatTypeKind) {\n FlatTypeKind[\"i32\"] = \"i32\";\n FlatTypeKind[\"i64\"] = \"i64\";\n FlatTypeKind[\"f32\"] = \"f32\";\n FlatTypeKind[\"f64\"] = \"f64\";\n})(FlatTypeKind || (exports.FlatTypeKind = FlatTypeKind = {}));\nvar $i32;\n(function ($i32) {\n $i32.kind = FlatTypeKind.i32;\n $i32.size = 4;\n $i32.alignment = Alignment.word;\n function load(memory, offset) {\n return memory.getUint32(offset);\n }\n $i32.load = load;\n function store(memory, offset, value) {\n memory.setUint32(offset, value);\n }\n $i32.store = store;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $i32.alignment);\n src.assertAlignment(src_offset, $i32.alignment);\n src.copyBytes(src_offset, $i32.size, dest, dest_offset);\n }\n $i32.copy = copy;\n})($i32 || ($i32 = {}));\nexports.i32 = $i32;\nvar $i64;\n(function ($i64) {\n $i64.kind = FlatTypeKind.i64;\n $i64.size = 8;\n $i64.alignment = Alignment.doubleWord;\n function load(memory, offset) {\n return memory.getUint64(offset);\n }\n $i64.load = load;\n function store(memory, offset, value) {\n memory.setUint64(offset, value);\n }\n $i64.store = store;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $i64.alignment);\n src.assertAlignment(src_offset, $i64.alignment);\n src.copyBytes(src_offset, $i64.size, dest, dest_offset);\n }\n $i64.copy = copy;\n})($i64 || ($i64 = {}));\nexports.i64 = $i64;\nvar $f32;\n(function ($f32) {\n $f32.kind = FlatTypeKind.f32;\n $f32.size = 4;\n $f32.alignment = Alignment.word;\n function load(memory, offset) {\n return memory.getFloat32(offset);\n }\n $f32.load = load;\n function store(memory, offset, value) {\n memory.setFloat32(offset, value);\n }\n $f32.store = store;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $f32.alignment);\n src.assertAlignment(src_offset, $f32.alignment);\n src.copyBytes(src_offset, $f32.size, dest, dest_offset);\n }\n $f32.copy = copy;\n})($f32 || ($f32 = {}));\nexports.f32 = $f32;\nvar $f64;\n(function ($f64) {\n $f64.kind = FlatTypeKind.f64;\n $f64.size = 8;\n $f64.alignment = Alignment.doubleWord;\n function load(memory, offset) {\n return memory.getFloat64(offset);\n }\n $f64.load = load;\n function store(memory, offset, value) {\n memory.setFloat64(offset, value);\n }\n $f64.store = store;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $f64.alignment);\n src.assertAlignment(src_offset, $f64.alignment);\n src.copyBytes(src_offset, $f64.size, dest, dest_offset);\n }\n $f64.copy = copy;\n})($f64 || ($f64 = {}));\nexports.f64 = $f64;\nclass FlatTuple {\n types;\n alignment;\n size;\n constructor(types) {\n this.types = types;\n this.alignment = FlatTuple.alignment(types);\n this.size = FlatTuple.size(types, this.alignment);\n }\n load(memory, offset) {\n memory.assertAlignment(offset, this.alignment);\n const result = [];\n for (const type of this.types) {\n offset = align(offset, type.alignment);\n result.push(type.load(memory, offset));\n offset += type.size;\n }\n return result;\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memory, offset, values) {\n memory.assertAlignment(offset, this.alignment);\n for (const [index, type] of this.types.entries()) {\n const value = values[index];\n offset = align(offset, type.alignment);\n type.store(memory, offset, value);\n offset += type.size;\n }\n }\n copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, this.alignment);\n src.assertAlignment(src_offset, this.alignment);\n src.copyBytes(src_offset, this.size, dest, dest_offset);\n }\n static alignment(types) {\n let result = Alignment.byte;\n for (const type of types) {\n result = Math.max(result, type.alignment);\n }\n return result;\n }\n static size(types, tupleAlignment) {\n let result = 0;\n for (const type of types) {\n result = align(result, type.alignment);\n result += type.size;\n }\n return align(result, tupleAlignment);\n }\n}\nexports.FlatTuple = FlatTuple;\nvar WasmTypes;\n(function (WasmTypes) {\n const $32 = new DataView(new ArrayBuffer(4));\n const $64 = new DataView(new ArrayBuffer(8));\n function reinterpret_i32_as_f32(i32) {\n $32.setInt32(0, i32, true);\n return $32.getFloat32(0, true);\n }\n WasmTypes.reinterpret_i32_as_f32 = reinterpret_i32_as_f32;\n function reinterpret_f32_as_i32(f32) {\n $32.setFloat32(0, f32, true);\n return $32.getInt32(0, true);\n }\n WasmTypes.reinterpret_f32_as_i32 = reinterpret_f32_as_i32;\n function convert_i64_to_i32(i64) {\n return BigInts.asNumber(i64);\n }\n WasmTypes.convert_i64_to_i32 = convert_i64_to_i32;\n function convert_i32_to_i64(i32) {\n return BigInt(i32);\n }\n WasmTypes.convert_i32_to_i64 = convert_i32_to_i64;\n function reinterpret_i64_as_f32(i64) {\n const i32 = convert_i64_to_i32(i64);\n return reinterpret_i32_as_f32(i32);\n }\n WasmTypes.reinterpret_i64_as_f32 = reinterpret_i64_as_f32;\n function reinterpret_f32_as_i64(f32) {\n const i32 = reinterpret_f32_as_i32(f32);\n return convert_i32_to_i64(i32);\n }\n WasmTypes.reinterpret_f32_as_i64 = reinterpret_f32_as_i64;\n function reinterpret_i64_as_f64(i64) {\n $64.setBigInt64(0, i64, true);\n return $64.getFloat64(0, true);\n }\n WasmTypes.reinterpret_i64_as_f64 = reinterpret_i64_as_f64;\n function reinterpret_f64_as_i64(f64) {\n $64.setFloat64(0, f64, true);\n return $64.getBigInt64(0, true);\n }\n WasmTypes.reinterpret_f64_as_i64 = reinterpret_f64_as_i64;\n})(WasmTypes || (WasmTypes = {}));\nclass CoerceValueIter {\n values;\n haveFlatTypes;\n wantFlatTypes;\n index;\n constructor(values, haveFlatTypes, wantFlatTypes) {\n this.values = values;\n this.haveFlatTypes = haveFlatTypes;\n this.wantFlatTypes = wantFlatTypes;\n if (haveFlatTypes.length < wantFlatTypes.length) {\n throw new ComponentModelTrap(`Invalid coercion: have ${haveFlatTypes.length} values, want ${wantFlatTypes.length} values`);\n }\n this.index = 0;\n }\n next() {\n const value = this.values.next();\n if (value.done) {\n return value;\n }\n const haveType = this.haveFlatTypes[this.index];\n const wantType = this.wantFlatTypes[this.index++];\n if (haveType === $i32 && wantType === $f32) {\n return { done: false, value: WasmTypes.reinterpret_i32_as_f32(value.value) };\n }\n else if (haveType === $i64 && wantType === $i32) {\n return { done: false, value: WasmTypes.convert_i64_to_i32(value.value) };\n }\n else if (haveType === $i64 && wantType === $f32) {\n return { done: false, value: WasmTypes.reinterpret_i64_as_f32(value.value) };\n }\n else if (haveType === $i64 && wantType === $f64) {\n return { done: false, value: WasmTypes.reinterpret_i64_as_f64(value.value) };\n }\n else {\n return value;\n }\n }\n}\nvar ComponentModelTypeKind;\n(function (ComponentModelTypeKind) {\n ComponentModelTypeKind[\"bool\"] = \"bool\";\n ComponentModelTypeKind[\"u8\"] = \"u8\";\n ComponentModelTypeKind[\"u16\"] = \"u16\";\n ComponentModelTypeKind[\"u32\"] = \"u32\";\n ComponentModelTypeKind[\"u64\"] = \"u64\";\n ComponentModelTypeKind[\"s8\"] = \"s8\";\n ComponentModelTypeKind[\"s16\"] = \"s16\";\n ComponentModelTypeKind[\"s32\"] = \"s32\";\n ComponentModelTypeKind[\"s64\"] = \"s64\";\n ComponentModelTypeKind[\"float32\"] = \"float32\";\n ComponentModelTypeKind[\"float64\"] = \"float64\";\n ComponentModelTypeKind[\"char\"] = \"char\";\n ComponentModelTypeKind[\"string\"] = \"string\";\n ComponentModelTypeKind[\"list\"] = \"list\";\n ComponentModelTypeKind[\"record\"] = \"record\";\n ComponentModelTypeKind[\"tuple\"] = \"tuple\";\n ComponentModelTypeKind[\"variant\"] = \"variant\";\n ComponentModelTypeKind[\"enum\"] = \"enum\";\n ComponentModelTypeKind[\"flags\"] = \"flags\";\n ComponentModelTypeKind[\"option\"] = \"option\";\n ComponentModelTypeKind[\"result\"] = \"result\";\n ComponentModelTypeKind[\"resource\"] = \"resource\";\n ComponentModelTypeKind[\"resourceHandle\"] = \"resourceHandle\";\n ComponentModelTypeKind[\"borrow\"] = \"borrow\";\n ComponentModelTypeKind[\"own\"] = \"own\";\n})(ComponentModelTypeKind || (exports.ComponentModelTypeKind = ComponentModelTypeKind = {}));\nexports.bool = {\n kind: ComponentModelTypeKind.bool,\n size: 1,\n alignment: 1,\n flatTypes: [$i32],\n load(memory, offset) {\n return memory.getUint8(offset) !== 0;\n },\n liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < 0) {\n throw new Error(`Invalid bool value ${value}`);\n }\n return value !== 0;\n },\n alloc(memory) {\n return memory.alloc(exports.bool.alignment, exports.bool.size);\n },\n store(memory, offset, value) {\n memory.setUint8(offset, value ? 1 : 0);\n },\n lowerFlat(result, _memory, value) {\n result.push(value ? 1 : 0);\n },\n copy(dest, dest_offset, src, src_offset) {\n src.copyBytes(src_offset, exports.bool.size, dest, dest_offset);\n }\n};\nvar $u8;\n(function ($u8) {\n $u8.kind = ComponentModelTypeKind.u8;\n $u8.size = 1;\n $u8.alignment = Alignment.byte;\n $u8.flatTypes = [$i32];\n $u8.LOW_VALUE = 0;\n $u8.HIGH_VALUE = 255;\n function load(memory, offset) {\n return memory.getUint8(offset);\n }\n $u8.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u8.LOW_VALUE || value > $u8.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u8 value ${value}`);\n }\n return value;\n }\n $u8.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($u8.alignment, $u8.size);\n }\n $u8.alloc = alloc;\n function store(memory, offset, value) {\n memory.setUint8(offset, value);\n }\n $u8.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < $u8.LOW_VALUE || value > $u8.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u8 value ${value}`);\n }\n result.push(value);\n }\n $u8.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n src.copyBytes(src_offset, $u8.size, dest, dest_offset);\n }\n $u8.copy = copy;\n})($u8 || ($u8 = {}));\nexports.u8 = $u8;\nvar $u16;\n(function ($u16) {\n $u16.kind = ComponentModelTypeKind.u16;\n $u16.size = 2;\n $u16.alignment = Alignment.halfWord;\n $u16.flatTypes = [$i32];\n $u16.LOW_VALUE = 0;\n $u16.HIGH_VALUE = 65535;\n function load(memory, offset) {\n return memory.getUint16(offset);\n }\n $u16.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u16.LOW_VALUE || value > $u16.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u16 value ${value}`);\n }\n return value;\n }\n $u16.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($u16.alignment, $u16.size);\n }\n $u16.alloc = alloc;\n function store(memory, offset, value) {\n memory.setUint16(offset, value);\n }\n $u16.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < $u16.LOW_VALUE || value > $u16.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u16 value ${value}`);\n }\n result.push(value);\n }\n $u16.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $u16.alignment);\n src.assertAlignment(src_offset, $u16.alignment);\n src.copyBytes(src_offset, $u16.size, dest, dest_offset);\n }\n $u16.copy = copy;\n})($u16 || ($u16 = {}));\nexports.u16 = $u16;\nvar $u32;\n(function ($u32) {\n $u32.kind = ComponentModelTypeKind.u32;\n $u32.size = 4;\n $u32.alignment = Alignment.word;\n $u32.flatTypes = [$i32];\n $u32.LOW_VALUE = 0;\n $u32.HIGH_VALUE = 4294967295; // 2 ^ 32 - 1\n function valid(value) {\n return value >= $u32.LOW_VALUE && value <= $u32.HIGH_VALUE && Number.isInteger(value);\n }\n $u32.valid = valid;\n function load(memory, offset) {\n return memory.getUint32(offset);\n }\n $u32.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u32.LOW_VALUE || value > $u32.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u32 value ${value}`);\n }\n return value;\n }\n $u32.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($u32.alignment, $u32.size);\n }\n $u32.alloc = alloc;\n function store(memory, offset, value) {\n memory.setUint32(offset, value);\n }\n $u32.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < $u32.LOW_VALUE || value > $u32.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u32 value ${value}`);\n }\n result.push(value);\n }\n $u32.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $u32.alignment);\n src.assertAlignment(src_offset, $u32.alignment);\n src.copyBytes(src_offset, $u32.size, dest, dest_offset);\n }\n $u32.copy = copy;\n})($u32 || ($u32 = {}));\nexports.u32 = $u32;\nvar $u64;\n(function ($u64) {\n $u64.kind = ComponentModelTypeKind.u64;\n $u64.size = 8;\n $u64.alignment = Alignment.doubleWord;\n $u64.flatTypes = [$i64];\n $u64.LOW_VALUE = 0n;\n $u64.HIGH_VALUE = 18446744073709551615n; // 2 ^ 64 - 1\n function load(memory, offset) {\n return memory.getUint64(offset);\n }\n $u64.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u64.LOW_VALUE) {\n throw new Error(`Invalid u64 value ${value}`);\n }\n return value;\n }\n $u64.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($u64.alignment, $u64.size);\n }\n $u64.alloc = alloc;\n function store(memory, offset, value) {\n memory.setUint64(offset, value);\n }\n $u64.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < $u64.LOW_VALUE) {\n throw new Error(`Invalid u64 value ${value}`);\n }\n result.push(value);\n }\n $u64.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $u64.alignment);\n src.assertAlignment(src_offset, $u64.alignment);\n src.copyBytes(src_offset, $u64.size, dest, dest_offset);\n }\n $u64.copy = copy;\n})($u64 || ($u64 = {}));\nexports.u64 = $u64;\nvar $s8;\n(function ($s8) {\n $s8.kind = ComponentModelTypeKind.s8;\n $s8.size = 1;\n $s8.alignment = Alignment.byte;\n $s8.flatTypes = [$i32];\n const LOW_VALUE = -128;\n const HIGH_VALUE = 127;\n function load(memory, offset) {\n return memory.getInt8(offset);\n }\n $s8.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n // All int values in the component model are transferred as unsigned\n // values. So for signed values we need to convert them back. First\n // we check if the value is in range of the corresponding unsigned\n // value and the convert it to a signed value.\n if (value < $u8.LOW_VALUE || value > $u8.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid u8 value ${value}`);\n }\n if (value <= HIGH_VALUE) {\n return value;\n }\n else {\n return value - 256;\n }\n }\n $s8.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($s8.alignment, $s8.size);\n }\n $s8.alloc = alloc;\n function store(memory, offset, value) {\n memory.setInt8(offset, value);\n }\n $s8.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < LOW_VALUE || value > HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid s8 value ${value}`);\n }\n result.push((value < 0) ? (value + 256) : value);\n }\n $s8.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $s8.alignment);\n src.assertAlignment(src_offset, $s8.alignment);\n src.copyBytes(src_offset, $s8.size, dest, dest_offset);\n }\n $s8.copy = copy;\n})($s8 || ($s8 = {}));\nexports.s8 = $s8;\nvar $s16;\n(function ($s16) {\n $s16.kind = ComponentModelTypeKind.s16;\n $s16.size = 2;\n $s16.alignment = Alignment.halfWord;\n $s16.flatTypes = [$i32];\n const LOW_VALUE = -32768; // -2 ^ 15\n const HIGH_VALUE = 32767; // 2 ^ 15 - 1\n function load(memory, offset) {\n return memory.getInt16(offset);\n }\n $s16.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u16.LOW_VALUE || value > $u16.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid s16 value ${value}`);\n }\n return (value <= HIGH_VALUE) ? value : value - 65536;\n }\n $s16.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($s16.alignment, $s16.size);\n }\n $s16.alloc = alloc;\n function store(memory, offset, value) {\n memory.setInt16(offset, value);\n }\n $s16.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < LOW_VALUE || value > HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid s16 value ${value}`);\n }\n result.push((value < 0) ? (value + 65536) : value);\n }\n $s16.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $s16.alignment);\n src.assertAlignment(src_offset, $s16.alignment);\n src.copyBytes(src_offset, $s16.size, dest, dest_offset);\n }\n $s16.copy = copy;\n})($s16 || ($s16 = {}));\nexports.s16 = $s16;\nvar $s32;\n(function ($s32) {\n $s32.kind = ComponentModelTypeKind.s32;\n $s32.size = 4;\n $s32.alignment = Alignment.word;\n $s32.flatTypes = [$i32];\n const LOW_VALUE = -2147483648; // -2 ^ 31\n const HIGH_VALUE = 2147483647; // 2 ^ 31 - 1\n function load(memory, offset) {\n return memory.getInt32(offset);\n }\n $s32.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u32.LOW_VALUE || value > $u32.HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid s32 value ${value}`);\n }\n return (value <= HIGH_VALUE) ? value : value - 4294967296;\n }\n $s32.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($s32.alignment, $s32.size);\n }\n $s32.alloc = alloc;\n function store(memory, offset, value) {\n memory.setInt32(offset, value);\n }\n $s32.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < LOW_VALUE || value > HIGH_VALUE || !Number.isInteger(value)) {\n throw new Error(`Invalid s32 value ${value}`);\n }\n result.push((value < 0) ? (value + 4294967296) : value);\n }\n $s32.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $s32.alignment);\n src.assertAlignment(src_offset, $s32.alignment);\n src.copyBytes(src_offset, $s32.size, dest, dest_offset);\n }\n $s32.copy = copy;\n})($s32 || ($s32 = {}));\nexports.s32 = $s32;\nvar $s64;\n(function ($s64) {\n $s64.kind = ComponentModelTypeKind.s64;\n $s64.size = 8;\n $s64.alignment = Alignment.doubleWord;\n $s64.flatTypes = [$i64];\n const LOW_VALUE = -9223372036854775808n; // -2 ^ 63\n const HIGH_VALUE = 9223372036854775807n; // 2 ^ 63 - 1\n function load(memory, offset) {\n return memory.getInt64(offset);\n }\n $s64.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < $u64.LOW_VALUE) {\n throw new Error(`Invalid s64 value ${value}`);\n }\n return (value <= HIGH_VALUE) ? value : value - 18446744073709551616n;\n }\n $s64.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($s64.alignment, $s64.size);\n }\n $s64.alloc = alloc;\n function store(memory, offset, value) {\n memory.setInt64(offset, value);\n }\n $s64.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < LOW_VALUE || value > HIGH_VALUE) {\n throw new Error(`Invalid s64 value ${value}`);\n }\n result.push((value < 0) ? (value + 18446744073709551616n) : value);\n }\n $s64.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $s64.alignment);\n src.assertAlignment(src_offset, $s64.alignment);\n src.copyBytes(src_offset, $s64.size, dest, dest_offset);\n }\n $s64.copy = copy;\n})($s64 || ($s64 = {}));\nexports.s64 = $s64;\nvar $float32;\n(function ($float32) {\n $float32.kind = ComponentModelTypeKind.float32;\n $float32.size = 4;\n $float32.alignment = Alignment.word;\n $float32.flatTypes = [$f32];\n const LOW_VALUE = -3.4028234663852886e+38;\n const HIGH_VALUE = 3.4028234663852886e+38;\n const NAN = 0x7fc00000;\n function load(memory, offset) {\n return memory.getFloat32(offset);\n }\n $float32.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < LOW_VALUE || value > HIGH_VALUE) {\n throw new Error(`Invalid float32 value ${value}`);\n }\n return value === NAN ? Number.NaN : value;\n }\n $float32.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($float32.alignment, $float32.size);\n }\n $float32.alloc = alloc;\n function store(memory, offset, value) {\n memory.setFloat32(offset, value);\n }\n $float32.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < LOW_VALUE || value > HIGH_VALUE) {\n throw new Error(`Invalid float32 value ${value}`);\n }\n result.push(Number.isNaN(value) ? NAN : value);\n }\n $float32.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $float32.alignment);\n src.assertAlignment(src_offset, $float32.alignment);\n src.copyBytes(src_offset, $float32.size, dest, dest_offset);\n }\n $float32.copy = copy;\n})($float32 || ($float32 = {}));\nexports.float32 = $float32;\nvar $float64;\n(function ($float64) {\n $float64.kind = ComponentModelTypeKind.float64;\n $float64.size = 8;\n $float64.alignment = Alignment.doubleWord;\n $float64.flatTypes = [$f64];\n const LOW_VALUE = -1 * Number.MAX_VALUE;\n const HIGH_VALUE = Number.MAX_VALUE;\n const NAN = 0x7ff8000000000000;\n function load(memory, offset) {\n return memory.getFloat64(offset);\n }\n $float64.load = load;\n function liftFlat(_memory, values) {\n const value = values.next().value;\n if (value < LOW_VALUE || value > HIGH_VALUE) {\n throw new Error(`Invalid float64 value ${value}`);\n }\n return value === NAN ? Number.NaN : value;\n }\n $float64.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($float64.alignment, $float64.size);\n }\n $float64.alloc = alloc;\n function store(memory, offset, value) {\n memory.setFloat64(offset, value);\n }\n $float64.store = store;\n function lowerFlat(result, _memory, value) {\n if (value < LOW_VALUE || value > HIGH_VALUE) {\n throw new Error(`Invalid float64 value ${value}`);\n }\n result.push(Number.isNaN(value) ? NAN : value);\n }\n $float64.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $float64.alignment);\n src.assertAlignment(src_offset, $float64.alignment);\n src.copyBytes(src_offset, $float64.size, dest, dest_offset);\n }\n $float64.copy = copy;\n})($float64 || ($float64 = {}));\nexports.float64 = $float64;\nexports.byte = {\n kind: exports.u8.kind,\n size: exports.u8.size,\n alignment: exports.u8.alignment,\n flatTypes: exports.u8.flatTypes,\n load: exports.u8.load,\n liftFlat: exports.u8.liftFlat,\n alloc: exports.u8.alloc,\n store: exports.u8.store,\n lowerFlat: exports.u8.lowerFlat,\n copy: exports.u8.copy\n};\nexports.size = {\n kind: exports.u32.kind,\n size: exports.u32.size,\n alignment: exports.u32.alignment,\n flatTypes: exports.u32.flatTypes,\n load: exports.u32.load,\n liftFlat: exports.u32.liftFlat,\n alloc: exports.u32.alloc,\n store: exports.u32.store,\n lowerFlat: exports.u32.lowerFlat,\n copy: exports.u32.copy\n};\nexports.ptr = {\n kind: exports.u32.kind,\n size: exports.u32.size,\n alignment: exports.u32.alignment,\n flatTypes: exports.u32.flatTypes,\n load: exports.u32.load,\n liftFlat: exports.u32.liftFlat,\n alloc: exports.u32.alloc,\n store: exports.u32.store,\n lowerFlat: exports.u32.lowerFlat,\n copy: exports.u32.copy\n};\nvar $wchar;\n(function ($wchar) {\n $wchar.kind = ComponentModelTypeKind.char;\n $wchar.size = 4;\n $wchar.alignment = Alignment.word;\n $wchar.flatTypes = [$i32];\n function load(memory, offset, context) {\n return fromCodePoint(exports.u32.load(memory, offset, context));\n }\n $wchar.load = load;\n function liftFlat(memory, values, context) {\n return fromCodePoint(exports.u32.liftFlat(memory, values, context));\n }\n $wchar.liftFlat = liftFlat;\n function alloc(memory) {\n return exports.u32.alloc(memory);\n }\n $wchar.alloc = alloc;\n function store(memory, offset, value, context) {\n exports.u32.store(memory, offset, asCodePoint(value), context);\n }\n $wchar.store = store;\n function lowerFlat(result, memory, value, context) {\n exports.u32.lowerFlat(result, memory, asCodePoint(value), context);\n }\n $wchar.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, $wchar.alignment);\n src.assertAlignment(src_offset, $wchar.alignment);\n src.copyBytes(src_offset, $wchar.size, dest, dest_offset);\n }\n $wchar.copy = copy;\n function fromCodePoint(code) {\n if (code >= 0x110000 || (0xD800 <= code && code <= 0xDFFF)) {\n throw new ComponentModelTrap('Invalid code point');\n }\n return String.fromCodePoint(code);\n }\n function asCodePoint(str) {\n if (str.length !== 1) {\n throw new ComponentModelTrap('String length must be 1');\n }\n const code = str.codePointAt(0);\n if (!(code <= 0xD7FF || (0xD800 <= code && code <= 0x10FFFF))) {\n throw new ComponentModelTrap('Invalid code point');\n }\n return code;\n }\n})($wchar || ($wchar = {}));\nexports.wchar = $wchar;\nvar $wstring;\n(function ($wstring) {\n const offsets = {\n data: 0,\n codeUnits: 4\n };\n $wstring.kind = ComponentModelTypeKind.string;\n $wstring.size = 8;\n $wstring.alignment = Alignment.word;\n $wstring.flatTypes = [$i32, $i32];\n function load(memRange, offset, context) {\n const dataPtr = memRange.getUint32(offset + offsets.data);\n const codeUnits = memRange.getUint32(offset + offsets.codeUnits);\n return loadFromRange(memRange.memory, dataPtr, codeUnits, context.options);\n }\n $wstring.load = load;\n function liftFlat(memory, values, context) {\n const dataPtr = values.next().value;\n const codeUnits = values.next().value;\n return loadFromRange(memory, dataPtr, codeUnits, context.options);\n }\n $wstring.liftFlat = liftFlat;\n function alloc(memory) {\n return memory.alloc($wstring.alignment, $wstring.size);\n }\n $wstring.alloc = alloc;\n function store(memory, offset, str, context) {\n const [ptr, codeUnits] = storeIntoRange(memory.memory, str, context.options);\n memory.setUint32(offset + offsets.data, ptr);\n memory.setUint32(offset + offsets.codeUnits, codeUnits);\n }\n $wstring.store = store;\n function lowerFlat(result, memory, str, context) {\n result.push(...storeIntoRange(memory, str, context.options));\n }\n $wstring.lowerFlat = lowerFlat;\n function copy(dest, dest_offset, src, src_offset, context) {\n dest.assertAlignment(dest_offset, $wstring.alignment);\n src.assertAlignment(src_offset, $wstring.alignment);\n src.copyBytes(src_offset, $wstring.size, dest, dest_offset);\n const data = src.getUint32(src_offset + offsets.data);\n const codeUnits = src.getUint32(src_offset + offsets.codeUnits);\n const [alignment, byteLength] = getAlignmentAndByteLength(codeUnits, context.options);\n const srcReader = src.memory.readonly(data, byteLength);\n const destWriter = dest.memory.alloc(alignment, byteLength);\n srcReader.copyBytes(0, byteLength, destWriter, 0);\n }\n $wstring.copy = copy;\n function getAlignmentAndByteLength(codeUnits, options) {\n const encoding = options.encoding;\n if (encoding === 'latin1+utf-16') {\n throw new Error('latin1+utf-16 encoding not yet supported');\n }\n if (encoding === 'utf-8') {\n return [exports.u8.alignment, codeUnits];\n }\n else if (encoding === 'utf-16') {\n return [exports.u16.alignment, codeUnits * 2];\n }\n else {\n throw new Error('Unsupported encoding');\n }\n }\n $wstring.getAlignmentAndByteLength = getAlignmentAndByteLength;\n function loadFromRange(memory, data, codeUnits, options) {\n const encoding = options.encoding;\n if (encoding === 'latin1+utf-16') {\n throw new Error('latin1+utf-16 encoding not yet supported');\n }\n if (encoding === 'utf-8') {\n const byteLength = codeUnits;\n const reader = memory.readonly(data, byteLength);\n return utf8Decoder.decode(reader.getUint8Array(0, byteLength));\n }\n else if (encoding === 'utf-16') {\n const reader = memory.readonly(data, codeUnits * 2);\n return String.fromCharCode(...reader.getUint16Array(data, codeUnits));\n }\n else {\n throw new Error('Unsupported encoding');\n }\n }\n function storeIntoRange(memory, str, options) {\n const { encoding } = options;\n if (encoding === 'latin1+utf-16') {\n throw new Error('latin1+utf-16 encoding not yet supported');\n }\n if (encoding === 'utf-8') {\n const data = utf8Encoder.encode(str);\n const writer = memory.alloc(exports.u8.alignment, data.length);\n writer.setUint8Array(0, data);\n return [writer.ptr, data.length];\n }\n else if (encoding === 'utf-16') {\n const writer = memory.alloc(exports.u16.alignment, str.length * 2);\n const data = writer.getUint16View(0);\n for (let i = 0; i < str.length; i++) {\n data[i] = str.charCodeAt(i);\n }\n return [writer.ptr, data.length];\n }\n else {\n throw new Error('Unsupported encoding');\n }\n }\n})($wstring || ($wstring = {}));\nexports.wstring = $wstring;\nclass ListType {\n static offsets = {\n data: 0,\n length: 4\n };\n elementType;\n kind;\n size;\n alignment;\n flatTypes;\n constructor(elementType) {\n this.elementType = elementType;\n this.kind = ComponentModelTypeKind.list;\n this.size = 8;\n this.alignment = Alignment.word;\n this.flatTypes = [$i32, $i32];\n }\n load(memRange, offset, context) {\n const offsets = ListType.offsets;\n const dataPtr = memRange.getUint32(offset + offsets.data);\n const length = memRange.getUint32(offset + offsets.length);\n return this.loadFromRange(memRange.memory.readonly(dataPtr, length * this.elementType.size), length, context);\n }\n liftFlat(memory, values, context) {\n const dataPtr = values.next().value;\n const length = values.next().value;\n return this.loadFromRange(memory.readonly(dataPtr, length * this.elementType.size), length, context);\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memRange, offset, values, context) {\n const elementMemory = memRange.memory.alloc(this.elementType.alignment, this.elementType.size * values.length);\n this.storeIntoRange(elementMemory, values, context);\n const offsets = ListType.offsets;\n memRange.setUint32(offset + offsets.data, elementMemory.ptr);\n memRange.setUint32(offset + offsets.length, values.length);\n }\n lowerFlat(result, memory, values, context) {\n const elementMemory = memory.alloc(this.elementType.alignment, this.elementType.size * values.length);\n this.storeIntoRange(elementMemory, values, context);\n result.push(elementMemory.ptr, values.length);\n }\n copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, this.alignment);\n src.assertAlignment(src_offset, this.alignment);\n const offsets = ListType.offsets;\n src.copyBytes(src_offset, this.size, dest, dest_offset);\n const data = src.getUint32(src_offset + offsets.data);\n const byteLength = src.getUint32(src_offset + offsets.length) * this.elementType.size;\n const srcReader = src.memory.readonly(data, byteLength);\n const destWriter = dest.memory.alloc(this.elementType.alignment, byteLength);\n srcReader.copyBytes(0, byteLength, destWriter, 0);\n }\n loadFromRange(memory, length, context) {\n const result = [];\n let offset = 0;\n for (let i = 0; i < length; i++) {\n result.push(this.elementType.load(memory, offset, context));\n offset += this.elementType.size;\n }\n return result;\n }\n storeIntoRange(memory, values, context) {\n let offset = 0;\n for (const item of values) {\n this.elementType.store(memory, offset, item, context);\n offset += this.elementType.size;\n }\n }\n}\nexports.ListType = ListType;\nclass TypeArrayType {\n static offsets = {\n data: 0,\n length: 4\n };\n kind;\n size;\n alignment;\n flatTypes;\n elementType;\n constructor(elementType) {\n this.kind = ComponentModelTypeKind.list;\n this.size = 8;\n this.alignment = 4;\n this.flatTypes = [$i32, $i32];\n this.elementType = elementType;\n }\n load(memRange, offset) {\n const offsets = TypeArrayType.offsets;\n const dataPtr = memRange.getUint32(offset + offsets.data);\n const length = memRange.getUint32(offset + offsets.length);\n return this.loadFromRange(memRange.memory.readonly(dataPtr, length * this.elementType.size), length);\n }\n liftFlat(memory, values) {\n const dataPtr = values.next().value;\n const length = values.next().value;\n return this.loadFromRange(memory.readonly(dataPtr, length * this.elementType.size), length);\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memRange, offset, value) {\n const writer = memRange.memory.alloc(this.elementType.alignment, value.byteLength);\n this.storeIntoRange(writer, value);\n const offsets = TypeArrayType.offsets;\n memRange.setUint32(offset + offsets.data, writer.ptr);\n memRange.setUint32(offset + offsets.length, value.length);\n }\n lowerFlat(result, memory, value) {\n const writer = memory.alloc(this.elementType.alignment, value.byteLength);\n this.storeIntoRange(writer, value);\n result.push(writer.ptr, value.length);\n }\n copy(dest, dest_offset, src, src_offset) {\n dest.assertAlignment(dest_offset, this.alignment);\n src.assertAlignment(src_offset, this.alignment);\n const offsets = TypeArrayType.offsets;\n src.copyBytes(src_offset, this.size, dest, dest_offset);\n const data = src.getUint32(src_offset + offsets.data);\n const byteLength = src.getUint32(src_offset + offsets.length) * this.elementType.size;\n const srcReader = src.memory.readonly(data, byteLength);\n const destWriter = dest.memory.alloc(this.elementType.alignment, byteLength);\n srcReader.copyBytes(0, byteLength, destWriter, 0);\n }\n}\nclass Int8ArrayType extends TypeArrayType {\n constructor() {\n super($s8);\n }\n loadFromRange(memory, length) {\n return memory.getInt8Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setInt8Array(0, value);\n }\n}\nexports.Int8ArrayType = Int8ArrayType;\nclass Int16ArrayType extends TypeArrayType {\n constructor() {\n super($s16);\n }\n loadFromRange(memory, length) {\n return memory.getInt16Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setInt16Array(0, value);\n }\n}\nexports.Int16ArrayType = Int16ArrayType;\nclass Int32ArrayType extends TypeArrayType {\n constructor() {\n super($s32);\n }\n loadFromRange(memory, length) {\n return memory.getInt32Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setInt32Array(0, value);\n }\n}\nexports.Int32ArrayType = Int32ArrayType;\nclass BigInt64ArrayType extends TypeArrayType {\n constructor() {\n super($s64);\n }\n loadFromRange(memory, length) {\n return memory.getInt64Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setInt64Array(0, value);\n }\n}\nexports.BigInt64ArrayType = BigInt64ArrayType;\nclass Uint8ArrayType extends TypeArrayType {\n constructor() {\n super($u8);\n }\n loadFromRange(memory, length) {\n return memory.getUint8Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setUint8Array(0, value);\n }\n}\nexports.Uint8ArrayType = Uint8ArrayType;\nclass Uint16ArrayType extends TypeArrayType {\n constructor() {\n super($u16);\n }\n loadFromRange(memory, length) {\n return memory.getUint16Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setUint16Array(0, value);\n }\n}\nexports.Uint16ArrayType = Uint16ArrayType;\nclass Uint32ArrayType extends TypeArrayType {\n constructor() {\n super($u32);\n }\n loadFromRange(memory, length) {\n return memory.getUint32Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setUint32Array(0, value);\n }\n}\nexports.Uint32ArrayType = Uint32ArrayType;\nclass BigUint64ArrayType extends TypeArrayType {\n constructor() {\n super($u64);\n }\n loadFromRange(memory, length) {\n return memory.getUint64Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setUint64Array(0, value);\n }\n}\nexports.BigUint64ArrayType = BigUint64ArrayType;\nclass Float32ArrayType extends TypeArrayType {\n constructor() {\n super($float32);\n }\n loadFromRange(memory, length) {\n return memory.getFloat32Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setFloat32Array(0, value);\n }\n}\nexports.Float32ArrayType = Float32ArrayType;\nclass Float64ArrayType extends TypeArrayType {\n constructor() {\n super($float64);\n }\n loadFromRange(memory, length) {\n return memory.getFloat64Array(0, length);\n }\n storeIntoRange(memory, value) {\n memory.setFloat64Array(0, value);\n }\n}\nexports.Float64ArrayType = Float64ArrayType;\nclass BaseRecordType {\n fields;\n kind;\n size;\n alignment;\n flatTypes;\n constructor(fields, kind) {\n this.fields = fields;\n this.kind = kind;\n this.alignment = BaseRecordType.alignment(fields);\n this.size = BaseRecordType.size(fields, this.alignment);\n this.flatTypes = BaseRecordType.flatTypes(fields);\n }\n load(memory, offset, context) {\n memory.assertAlignment(offset, this.alignment);\n const result = [];\n for (const field of this.fields) {\n offset = align(offset, field.type.alignment);\n result.push(field.type.load(memory, offset, context));\n offset += field.type.size;\n }\n return this.create(this.fields, result);\n }\n liftFlat(memory, values, context) {\n const result = [];\n for (const field of this.fields) {\n result.push(field.type.liftFlat(memory, values, context));\n }\n return this.create(this.fields, result);\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memory, offset, record, context) {\n memory.assertAlignment(offset, this.alignment);\n const values = this.elements(record, this.fields);\n for (let i = 0; i < this.fields.length; i++) {\n const field = this.fields[i];\n const value = values[i];\n offset = align(offset, field.type.alignment);\n field.type.store(memory, offset, value, context);\n offset += field.type.size;\n }\n }\n lowerFlat(result, memory, record, context) {\n const values = this.elements(record, this.fields);\n for (let i = 0; i < this.fields.length; i++) {\n const field = this.fields[i];\n const value = values[i];\n field.type.lowerFlat(result, memory, value, context);\n }\n }\n copy(dest, dest_offset, src, src_offset, context) {\n for (const field of this.fields) {\n dest_offset = align(dest_offset, field.type.alignment);\n src_offset = align(src_offset, field.type.alignment);\n field.type.copy(dest, dest_offset, src, src_offset, context);\n dest_offset += field.type.size;\n src_offset += field.type.size;\n }\n }\n static size(fields, recordAlignment) {\n let result = 0;\n for (const field of fields) {\n result = align(result, field.type.alignment);\n result += field.type.size;\n }\n return align(result, recordAlignment);\n }\n static alignment(fields) {\n let result = 1;\n for (const field of fields) {\n result = Math.max(result, field.type.alignment);\n }\n return result;\n }\n static flatTypes(fields) {\n const result = [];\n for (const field of fields) {\n result.push(...field.type.flatTypes);\n }\n return result;\n }\n}\nvar RecordField;\n(function (RecordField) {\n function create(name, type) {\n return { name, type };\n }\n RecordField.create = create;\n})(RecordField || (RecordField = {}));\nclass RecordType extends BaseRecordType {\n constructor(fields) {\n const recordFields = [];\n for (const [name, type] of fields) {\n recordFields.push(RecordField.create(name, type));\n }\n super(recordFields, ComponentModelTypeKind.record);\n }\n create(fields, values) {\n const result = {};\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i];\n const value = values[i];\n result[field.name] = value;\n }\n return result;\n }\n elements(record, fields) {\n const result = [];\n for (const field of fields) {\n const value = record[field.name];\n result.push(value);\n }\n return result;\n }\n}\nexports.RecordType = RecordType;\nvar TupleField;\n(function (TupleField) {\n function create(type) {\n return { type };\n }\n TupleField.create = create;\n})(TupleField || (TupleField = {}));\nclass TupleType extends BaseRecordType {\n constructor(fields) {\n const tupleFields = [];\n for (const type of fields) {\n tupleFields.push(TupleField.create(type));\n }\n super(tupleFields, ComponentModelTypeKind.tuple);\n }\n create(_fields, values) {\n return values;\n }\n elements(record, _fields) {\n return record;\n }\n}\nexports.TupleType = TupleType;\nclass FlagsType {\n type;\n arraySize;\n kind;\n size;\n alignment;\n flatTypes;\n constructor(numberOfFlags) {\n this.kind = ComponentModelTypeKind.flags;\n this.size = FlagsType.size(numberOfFlags);\n this.alignment = FlagsType.alignment(numberOfFlags);\n this.flatTypes = FlagsType.flatTypes(numberOfFlags);\n this.type = FlagsType.getType(numberOfFlags);\n this.arraySize = FlagsType.num32Flags(numberOfFlags);\n }\n load(memory, offset, context) {\n return this.type === undefined ? 0 : this.loadFrom(this.type.load(memory, offset, context));\n }\n liftFlat(memory, values, context) {\n return this.type === undefined ? 0 : this.loadFrom(this.type.liftFlat(memory, values, context));\n }\n loadFrom(value) {\n if (typeof value === 'number') {\n return value;\n }\n else {\n let result = 0n;\n for (let f = 0, i = value.length - 1; f < value.length; f++, i--) {\n const bits = value[i];\n result = result | (BigInt(bits) << BigInt(f * 32));\n }\n return result;\n }\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memory, offset, flags, context) {\n if (this.type !== undefined) {\n this.type.store(memory, offset, this.storeInto(flags), context);\n }\n }\n lowerFlat(result, _memory, flags, context) {\n if (this.type !== undefined) {\n this.type.lowerFlat(result, _memory, this.storeInto(flags), context);\n }\n }\n copy(dest, dest_offset, src, src_offset, context) {\n if (this.type !== undefined) {\n this.type.copy(dest, dest_offset, src, src_offset, context);\n }\n }\n storeInto(value) {\n if (typeof value === 'number') {\n return value;\n }\n else {\n const result = new Array(this.arraySize).fill(0);\n for (let f = 0, i = result.length - 1; f < result.length; f++, i--) {\n const bits = Number((value >> BigInt(f * 32)) & BigInt(0xffffffff));\n result[i] = bits;\n }\n return result;\n }\n }\n static size(numberOfFlags) {\n if (numberOfFlags === 0) {\n return 0;\n }\n else if (numberOfFlags <= 8) {\n return 1;\n }\n else if (numberOfFlags <= 16) {\n return 2;\n }\n else {\n return 4 * this.num32Flags(numberOfFlags);\n }\n }\n static alignment(numberOfFlags) {\n if (numberOfFlags <= 8) {\n return 1;\n }\n else if (numberOfFlags <= 16) {\n return 2;\n }\n else {\n return 4;\n }\n }\n static getType(numberOfFlags) {\n if (numberOfFlags === 0) {\n return undefined;\n }\n else if (numberOfFlags <= 8) {\n return exports.u8;\n }\n else if (numberOfFlags <= 16) {\n return exports.u16;\n }\n else if (numberOfFlags <= 32) {\n return exports.u32;\n }\n else {\n return new TupleType(new Array(this.num32Flags(numberOfFlags)).fill(exports.u32));\n }\n }\n static flatTypes(numberOfFlags) {\n return new Array(this.num32Flags(numberOfFlags)).fill($i32);\n }\n static num32Flags(numberOfFlags) {\n return Math.ceil(numberOfFlags / 32);\n }\n}\nexports.FlagsType = FlagsType;\nvar VariantCase;\n(function (VariantCase) {\n function create(index, tag, type) {\n return { index, tag, type, wantFlatTypes: type !== undefined ? [] : undefined };\n }\n VariantCase.create = create;\n})(VariantCase || (VariantCase = {}));\nclass VariantType {\n cases;\n case2Index;\n ctor;\n discriminantType;\n maxCaseAlignment;\n kind;\n size;\n alignment;\n flatTypes;\n constructor(variants, ctor, kind = ComponentModelTypeKind.variant) {\n const cases = [];\n this.case2Index = new Map();\n for (let i = 0; i < variants.length; i++) {\n const type = variants[i][1];\n const name = variants[i][0];\n this.case2Index.set(name, i);\n cases.push(VariantCase.create(i, name, type));\n }\n this.cases = cases;\n this.ctor = ctor;\n this.discriminantType = VariantType.discriminantType(cases.length);\n this.maxCaseAlignment = VariantType.maxCaseAlignment(cases);\n this.kind = kind;\n this.size = VariantType.size(this.discriminantType, cases);\n this.alignment = VariantType.alignment(this.discriminantType, cases);\n this.flatTypes = VariantType.flatTypes(this.discriminantType, cases);\n }\n load(memory, offset, context) {\n const caseIndex = this.discriminantType.load(memory, offset, context);\n const caseVariant = this.cases[caseIndex];\n if (caseVariant.type === undefined) {\n return this.ctor(caseVariant.tag, undefined);\n }\n else {\n offset += this.discriminantType.size;\n offset = align(offset, this.maxCaseAlignment);\n const value = caseVariant.type.load(memory, offset, context);\n return this.ctor(caseVariant.tag, value);\n }\n }\n liftFlat(memory, values, context) {\n // First one is the discriminant type. So skip it.\n let valuesToReadOver = this.flatTypes.length - 1;\n const caseIndex = this.discriminantType.liftFlat(memory, values, context);\n const caseVariant = this.cases[caseIndex];\n let result;\n if (caseVariant.type === undefined) {\n result = this.ctor(caseVariant.tag, undefined);\n }\n else {\n // The first flat type is the discriminant type. So skip it.\n const wantFlatTypes = caseVariant.wantFlatTypes;\n const iter = new CoerceValueIter(values, this.flatTypes.slice(1), wantFlatTypes);\n const value = caseVariant.type.liftFlat(memory, iter, context);\n result = this.ctor(caseVariant.tag, value);\n valuesToReadOver = valuesToReadOver - wantFlatTypes.length;\n }\n for (let i = 0; i < valuesToReadOver; i++) {\n values.next();\n }\n return result;\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memory, offset, variantValue, context) {\n const index = this.case2Index.get(variantValue.tag);\n if (index === undefined) {\n throw new ComponentModelTrap(`Variant case ${variantValue.tag} not found`);\n }\n this.discriminantType.store(memory, offset, index, context);\n offset += this.discriminantType.size;\n const c = this.cases[index];\n if (c.type !== undefined && variantValue.value !== undefined) {\n offset = align(offset, this.maxCaseAlignment);\n c.type.store(memory, offset, variantValue.value, context);\n }\n }\n lowerFlat(result, memory, variantValue, context) {\n const flatTypes = this.flatTypes;\n const index = this.case2Index.get(variantValue.tag);\n if (index === undefined) {\n throw new ComponentModelTrap(`Variant case ${variantValue.tag} not found`);\n }\n this.discriminantType.lowerFlat(result, memory, index, context);\n const c = this.cases[index];\n // First one is the discriminant type. So skip it.\n let valuesToFill = this.flatTypes.length - 1;\n if (c.type !== undefined && variantValue.value !== undefined) {\n const payload = [];\n c.type.lowerFlat(payload, memory, variantValue.value, context);\n // First one is the discriminant type. So skip it.\n const wantTypes = flatTypes.slice(1);\n const haveTypes = c.wantFlatTypes;\n if (payload.length !== haveTypes.length) {\n throw new ComponentModelTrap('Mismatched flat types');\n }\n for (let i = 0; i < wantTypes.length; i++) {\n const have = haveTypes[i];\n const want = wantTypes[i];\n if (have === $f32 && want === $i32) {\n payload[i] = WasmTypes.reinterpret_f32_as_i32(payload[i]);\n }\n else if (have === $i32 && want === $i64) {\n payload[i] = WasmTypes.convert_i32_to_i64(payload[i]);\n }\n else if (have === $f32 && want === $i64) {\n payload[i] = WasmTypes.reinterpret_f32_as_i64(payload[i]);\n }\n else if (have === $f64 && want === $i64) {\n payload[i] = WasmTypes.reinterpret_f64_as_i64(payload[i]);\n }\n }\n valuesToFill = valuesToFill - payload.length;\n result.push(...payload);\n }\n for (let i = flatTypes.length - valuesToFill; i < flatTypes.length; i++) {\n const type = flatTypes[i];\n if (type === $i64) {\n result.push(0n);\n }\n else {\n result.push(0);\n }\n }\n }\n copy(dest, dest_offset, src, src_offset, context) {\n this.discriminantType.copy(dest, dest_offset, src, src_offset, context);\n const caseIndex = this.discriminantType.load(src, src_offset, context);\n const caseVariant = this.cases[caseIndex];\n if (caseVariant.type === undefined) {\n return;\n }\n src_offset += this.discriminantType.size;\n src_offset = align(src_offset, this.maxCaseAlignment);\n dest_offset += this.discriminantType.size;\n dest_offset = align(dest_offset, this.maxCaseAlignment);\n caseVariant.type.copy(dest, dest_offset, src, src_offset, context);\n }\n static size(discriminantType, cases) {\n let result = discriminantType.size;\n result = align(result, this.maxCaseAlignment(cases));\n return result + this.maxCaseSize(cases);\n }\n static alignment(discriminantType, cases) {\n return Math.max(discriminantType.alignment, this.maxCaseAlignment(cases));\n }\n static flatTypes(discriminantType, cases) {\n const flat = [];\n for (const c of cases) {\n if (c.type === undefined) {\n continue;\n }\n const flatTypes = c.type.flatTypes;\n for (let i = 0; i < flatTypes.length; i++) {\n const want = flatTypes[i];\n if (i < flat.length) {\n const use = this.joinFlatType(flat[i], want);\n flat[i] = use;\n c.wantFlatTypes.push(want);\n }\n else {\n flat.push(want);\n c.wantFlatTypes.push(want);\n }\n }\n }\n return [...discriminantType.flatTypes, ...flat];\n }\n static discriminantType(cases) {\n switch (Math.ceil(Math.log2(cases) / 8)) {\n case 0: return exports.u8;\n case 1: return exports.u8;\n case 2: return exports.u16;\n case 3: return exports.u32;\n }\n throw new ComponentModelTrap(`Too many cases: ${cases}`);\n }\n static maxCaseAlignment(cases) {\n let result = 1;\n for (const c of cases) {\n if (c.type !== undefined) {\n result = Math.max(result, c.type.alignment);\n }\n }\n return result;\n }\n static maxCaseSize(cases) {\n let result = 0;\n for (const c of cases) {\n if (c.type !== undefined) {\n result = Math.max(result, c.type.size);\n }\n }\n return result;\n }\n static joinFlatType(a, b) {\n if (a === b) {\n return a;\n }\n if ((a === $i32 && b === $f32) || (a === $f32 && b === $i32)) {\n return $i32;\n }\n return $i64;\n }\n}\nexports.VariantType = VariantType;\nclass EnumType {\n discriminantType;\n cases;\n case2index;\n kind;\n size;\n alignment;\n flatTypes;\n constructor(cases) {\n this.discriminantType = EnumType.discriminantType(cases.length);\n this.cases = cases;\n this.case2index = new Map();\n for (let i = 0; i < cases.length; i++) {\n const c = cases[i];\n this.case2index.set(c, i);\n }\n this.kind = ComponentModelTypeKind.enum;\n this.size = this.discriminantType.size;\n this.alignment = this.discriminantType.alignment;\n this.flatTypes = this.discriminantType.flatTypes;\n }\n load(memory, offset, context) {\n const index = this.assertRange(this.discriminantType.load(memory, offset, context));\n return this.cases[index];\n }\n liftFlat(memory, values, context) {\n const index = this.assertRange(this.discriminantType.liftFlat(memory, values, context));\n return this.cases[index];\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memory, offset, value, context) {\n const index = this.case2index.get(value);\n if (index === undefined) {\n throw new ComponentModelTrap('Enumeration value not found');\n }\n this.discriminantType.store(memory, offset, index, context);\n }\n lowerFlat(result, memory, value, context) {\n const index = this.case2index.get(value);\n if (index === undefined) {\n throw new ComponentModelTrap('Enumeration value not found');\n }\n this.discriminantType.lowerFlat(result, memory, index, context);\n }\n copy(dest, dest_offset, src, src_offset, context) {\n this.discriminantType.copy(dest, dest_offset, src, src_offset, context);\n }\n assertRange(value) {\n if (value < 0 || value > this.cases.length) {\n throw new ComponentModelTrap('Enumeration value out of range');\n }\n return value;\n }\n static discriminantType(cases) {\n switch (Math.ceil(Math.log2(cases) / 8)) {\n case 0: return exports.u8;\n case 1: return exports.u8;\n case 2: return exports.u16;\n case 3: return exports.u32;\n }\n throw new ComponentModelTrap(`Too many cases: ${cases}`);\n }\n}\nexports.EnumType = EnumType;\nvar option;\n(function (option) {\n option.none = 'none';\n function None() {\n return new OptionImpl(option.none, undefined);\n }\n option.None = None;\n option.some = 'some';\n function Some(value) {\n return new OptionImpl(option.some, value);\n }\n option.Some = Some;\n function _ctor(c, v) {\n return new OptionImpl(c, v);\n }\n option._ctor = _ctor;\n function isOption(value) {\n return value instanceof OptionImpl;\n }\n option.isOption = isOption;\n class OptionImpl {\n _tag;\n _value;\n constructor(tag, value) {\n this._tag = tag;\n this._value = value;\n }\n get tag() {\n return this._tag;\n }\n get value() {\n return this._value;\n }\n isNone() {\n return this._tag === option.none;\n }\n isSome() {\n return this._tag === option.some;\n }\n }\n})(option || (exports.option = option = {}));\nclass OptionType {\n valueType;\n kind;\n size;\n alignment;\n flatTypes;\n constructor(valueType) {\n this.valueType = valueType;\n this.kind = ComponentModelTypeKind.option;\n this.size = this.computeSize();\n this.alignment = this.computeAlignment();\n this.flatTypes = this.computeFlatTypes();\n }\n load(memory, offset, context) {\n const caseIndex = exports.u8.load(memory, offset, context);\n if (caseIndex === 0) { // index 0 is none\n return context.options.keepOption ? option._ctor(option.none, undefined) : undefined;\n }\n else {\n offset += exports.u8.size;\n offset = align(offset, this.alignment);\n const value = this.valueType.load(memory, offset, context);\n return (context.options.keepOption ? option._ctor(option.some, value) : value);\n }\n }\n liftFlat(memory, values, context) {\n // First one is the discriminant type. So skip it.\n const caseIndex = exports.u8.liftFlat(memory, values, context);\n if (caseIndex === 0) { // Index 0 is none\n // Read over the value params\n for (let i = 0; i < this.valueType.flatTypes.length; i++) {\n values.next();\n }\n return context.options.keepOption ? option._ctor(option.none, undefined) : undefined;\n }\n else {\n const value = this.valueType.liftFlat(memory, values, context);\n return (context.options.keepOption ? option._ctor(option.some, value) : value);\n }\n }\n alloc(memory) {\n return memory.alloc(this.alignment, this.size);\n }\n store(memory, offset, value, context) {\n const optValue = this.asOptionValue(value, context.options);\n const index = optValue.tag === option.none ? 0 : 1;\n exports.u8.store(memory, offset, index, context);\n offset += exports.u8.size;\n if (optValue.tag === option.some) {\n offset = align(offset, this.valueType.alignment);\n this.valueType.store(memory, offset, optValue.value, context);\n }\n }\n lowerFlat(result, memory, value, context) {\n const optValue = this.asOptionValue(value, context.options);\n const index = optValue.tag === option.none ? 0 : 1;\n exports.u8.lowerFlat(result, memory, index, context);\n if (optValue.tag === option.none) {\n for (const type of this.valueType.flatTypes) {\n if (type === $i64) {\n result.push(0n);\n }\n else {\n result.push(0);\n }\n }\n }\n else {\n this.valueType.lowerFlat(result, memory, optValue.value, context);\n }\n }\n copy(dest, dest_offset, src, src_offset, context) {\n exports.u8.copy(dest, dest_offset, src, src_offset, context);\n const caseIndex = exports.u8.load(src, src_offset, context);\n if (caseIndex === 0) {\n return;\n }\n else {\n src_offset += exports.u8.size;\n src_offset = align(src_offset, this.alignment);\n dest_offset += exports.u8.size;\n dest_offset = align(dest_offset, this.alignment);\n this.valueType.copy(dest, dest_offset, src, src_offset, context);\n }\n }\n asOptionValue(value, options) {\n if (option.isOption(value)) {\n if (!options.keepOption) {\n throw new ComponentModelTrap('Received an option value although options should be unpacked.');\n }\n return value;\n }\n else {\n if (options.keepOption) {\n throw new ComponentModelTrap('Received a unpacked option value although options should NOT be unpacked.');\n }\n return value === undefined ? option._ctor(option.none, undefined) : option._ctor(option.some, value);\n }\n }\n computeSize() {\n let result = exports.u8.size;\n result = align(result, this.valueType.alignment);\n return result + this.valueType.size;\n }\n computeAlignment() {\n return Math.max(exports.u8.alignment, this.valueType.alignment);\n }\n computeFlatTypes() {\n return [...exports.u8.flatTypes, ...this.valueType.flatTypes];\n }\n}\nexports.OptionType = OptionType;\nvar result;\n(function (result) {\n result.ok = 'ok';\n function Ok(value) {\n return new ResultImpl(result.ok, value);\n }\n result.Ok = Ok;\n result.error = 'error';\n function Error(value) {\n return new ResultImpl(result.error, value);\n }\n result.Error = Error;\n function _ctor(c, v) {\n return new ResultImpl(c, v);\n }\n result._ctor = _ctor;\n class ResultImpl {\n _tag;\n _value;\n constructor(tag, value) {\n this._tag = tag;\n this._value = value;\n }\n get tag() {\n return this._tag;\n }\n get value() {\n return this._value;\n }\n isOk() {\n return this._tag === result.ok;\n }\n isError() {\n return this._tag === result.error;\n }\n }\n result.ResultImpl = ResultImpl;\n})(result || (exports.result = result = {}));\nclass ResultType extends VariantType {\n constructor(okType, errorType) {\n super([['ok', okType], ['error', errorType]], (result._ctor), ComponentModelTypeKind.result);\n }\n}\nexports.ResultType = ResultType;\nclass Callable {\n static EMPTY_JTYPE = Object.freeze([]);\n static EMPTY_WASM_TYPE = Object.freeze([]);\n static MAX_FLAT_PARAMS = 16;\n static MAX_FLAT_RESULTS = 1;\n witName;\n params;\n returnType;\n paramType;\n isSingleParam;\n mode;\n constructor(witName, params, returnType) {\n this.witName = witName;\n this.params = params;\n this.returnType = returnType;\n switch (params.length) {\n case 0:\n this.paramType = undefined;\n this.isSingleParam = false;\n break;\n case 1:\n this.paramType = params[0][1];\n this.isSingleParam = true;\n break;\n default:\n this.paramType = new TupleType(params.map(p => p[1]));\n this.isSingleParam = false;\n }\n this.mode = 'lower';\n }\n liftParamValues(wasmValues, memory, context) {\n if (this.paramType === undefined) {\n return Callable.EMPTY_JTYPE;\n }\n let result;\n if (this.paramType.flatTypes.length > Callable.MAX_FLAT_PARAMS) {\n const p0 = wasmValues[0];\n if (!Number.isInteger(p0)) {\n throw new ComponentModelTrap('Invalid pointer');\n }\n result = this.paramType.load(memory.readonly(p0, this.paramType.size), 0, context);\n }\n else {\n result = this.paramType.liftFlat(memory, wasmValues.values(), context);\n }\n return this.isSingleParam ? [result] : result;\n }\n lowerParamValues(values, memory, context, out) {\n if (this.paramType === undefined) {\n return Callable.EMPTY_WASM_TYPE;\n }\n if (this.isSingleParam && values.length !== 1) {\n throw new ComponentModelTrap(`Expected a single parameter, but got ${values.length}`);\n }\n const toLower = this.isSingleParam ? values[0] : values;\n if (this.paramType.flatTypes.length > Callable.MAX_FLAT_PARAMS) {\n const writer = out !== undefined ? memory.preAllocated(out, this.paramType.size) : this.paramType.alloc(memory);\n this.paramType.store(writer, 0, toLower, context);\n return [writer.ptr];\n }\n else {\n const result = [];\n this.paramType.lowerFlat(result, memory, toLower, context);\n return result;\n }\n }\n lowerReturnValue(value, memory, context, out) {\n if (this.returnType === undefined) {\n return;\n }\n else if (this.returnType.flatTypes.length <= Callable.MAX_FLAT_RESULTS) {\n const result = [];\n this.returnType.lowerFlat(result, memory, value, context);\n if (result.length !== this.returnType.flatTypes.length) {\n throw new ComponentModelTrap(`Expected flat result of length ${this.returnType.flatTypes.length}, but got ${JSON.stringify(result, undefined, undefined)}`);\n }\n return result[0];\n }\n else {\n const writer = out !== undefined ? memory.preAllocated(out, this.returnType.size) : this.returnType.alloc(memory);\n this.returnType.store(writer, 0, value, context);\n return;\n }\n }\n callWasm(params, wasmFunction, context) {\n const memory = context.getMemory();\n const wasmValues = this.lowerParamValues(params, memory, context, undefined);\n let resultRange = undefined;\n let result;\n if (this.returnType !== undefined && this.returnType.flatTypes.length > FunctionType.MAX_FLAT_RESULTS) {\n resultRange = this.returnType.alloc(memory);\n result = wasmFunction(...wasmValues, resultRange.ptr);\n }\n else {\n result = wasmFunction(...wasmValues);\n }\n return this.liftReturnValue(result, resultRange?.ptr, memory, context);\n }\n getParamValuesForHostCall(params, context) {\n const memory = context.getMemory();\n const returnFlatTypes = this.returnType === undefined ? 0 : this.returnType.flatTypes.length;\n // We currently only support 'lower' mode for results > MAX_FLAT_RESULTS.\n let out;\n if (returnFlatTypes > FunctionType.MAX_FLAT_RESULTS) {\n const paramFlatTypes = this.paramType !== undefined ? this.paramType.flatTypes.length : 0;\n // The caller allocated the memory. We just need to pass the pointer.\n if (params.length === paramFlatTypes + 1) {\n const last = params[paramFlatTypes];\n if (typeof last !== 'number') {\n throw new ComponentModelTrap(`Result pointer must be a number (u32), but got ${out}.`);\n }\n out = last;\n }\n }\n return [this.liftParamValues(params, memory, context), out];\n }\n liftReturnValue(value, out, memory, context) {\n if (this.returnType === undefined) {\n return;\n }\n else if (this.returnType.flatTypes.length <= Callable.MAX_FLAT_RESULTS) {\n return this.returnType.liftFlat(memory, [value].values(), context);\n }\n else {\n return this.returnType.load(memory.readonly(out, this.returnType.size), 0, context);\n }\n }\n}\nclass FunctionType extends Callable {\n constructor(witName, params, returnType) {\n super(witName, params, returnType);\n }\n callHost(func, params, context) {\n const [jParams, out] = this.getParamValuesForHostCall(params, context);\n const result = func(...jParams);\n return this.lowerReturnValue(result, context.getMemory(), context, out);\n }\n}\nexports.FunctionType = FunctionType;\nclass ConstructorType extends Callable {\n constructor(witName, params, returnType) {\n super(witName, params, returnType);\n }\n callHost(clazz, params, resourceManager, context) {\n // We currently only support 'lower' mode for results > MAX_FLAT_RESULTS.\n const returnFlatTypes = this.returnType === undefined ? 0 : this.returnType.flatTypes.length;\n if (returnFlatTypes !== 1) {\n throw new ComponentModelTrap(`Expected exactly one return type, but got ${returnFlatTypes}.`);\n }\n const memory = context.getMemory();\n const jParams = this.liftParamValues(params, memory, context);\n const obj = new clazz(...jParams);\n const handle = resourceManager.$handle(obj);\n return handle;\n }\n}\nexports.ConstructorType = ConstructorType;\nclass DestructorType extends Callable {\n constructor(witName, params) {\n super(witName, params);\n }\n callHost(params, resourceManager) {\n const handle = params[0];\n if (typeof handle === 'bigint' || !$u32.valid(handle)) {\n throw new ComponentModelTrap(`Object handle must be a number (u32), but got ${handle}.`);\n }\n const resource = resourceManager.$resource(handle);\n resource['$drop'] !== undefined && resource['$drop']();\n resourceManager.$drop(handle);\n }\n}\nexports.DestructorType = DestructorType;\nclass StaticMethodType extends Callable {\n constructor(witName, params, returnType) {\n super(witName, params, returnType);\n }\n callHost(func, params, context) {\n const [jParams, out] = this.getParamValuesForHostCall(params, context);\n const result = func(...jParams);\n return this.lowerReturnValue(result, context.getMemory(), context, out);\n }\n}\nexports.StaticMethodType = StaticMethodType;\nclass MethodType extends Callable {\n constructor(witName, params, returnType) {\n super(witName, params, returnType);\n }\n callHost(methodName, params, resourceManager, context) {\n if (params.length === 0) {\n throw new ComponentModelTrap(`Method calls must have at least one parameter (the object pointer).`);\n }\n // We need to cut off the first parameter (the object handle).\n const handle = params.shift();\n if (typeof handle !== 'number') {\n throw new ComponentModelTrap(`Object handle must be a number (u32), but got ${handle}.`);\n }\n const [jParams, out] = this.getParamValuesForHostCall(params, context);\n const resource = resourceManager.$resource(handle);\n const memory = context.getMemory();\n const result = resource[methodName](...jParams);\n return this.lowerReturnValue(result, memory, context, out);\n }\n callWasmMethod(params, wasmFunction, resourceManager, context) {\n const memory = context.getMemory();\n const obj = params.shift();\n const handle = obj.$handle ?? resourceManager.$handle(obj);\n const wasmValues = this.lowerParamValues(params, memory, context, undefined);\n let resultRange = undefined;\n let result;\n if (this.returnType !== undefined && this.returnType.flatTypes.length > FunctionType.MAX_FLAT_RESULTS) {\n resultRange = this.returnType.alloc(memory);\n result = wasmFunction(handle, ...wasmValues, resultRange.ptr);\n }\n else {\n result = wasmFunction(handle, ...wasmValues);\n }\n return this.liftReturnValue(result, resultRange?.ptr, memory, context);\n }\n}\nexports.MethodType = MethodType;\nclass ResourceHandleType {\n kind;\n size;\n alignment;\n flatTypes;\n witName;\n constructor(witName) {\n this.witName = witName;\n this.kind = ComponentModelTypeKind.resourceHandle;\n this.size = exports.u32.size;\n this.alignment = exports.u32.alignment;\n this.flatTypes = exports.u32.flatTypes;\n }\n load(memory, offset, context) {\n return exports.u32.load(memory, offset, context);\n }\n liftFlat(memory, values, context) {\n return exports.u32.liftFlat(memory, values, context);\n }\n alloc(memory) {\n return exports.u32.alloc(memory);\n }\n store(memory, offset, value, context) {\n exports.u32.store(memory, offset, value, context);\n }\n lowerFlat(result, memory, value, context) {\n exports.u32.lowerFlat(result, memory, value, context);\n }\n copy(dest, dest_offset, src, src_offset, context) {\n exports.u32.copy(dest, dest_offset, src, src_offset, context);\n }\n}\nexports.ResourceHandleType = ResourceHandleType;\nclass ResourceType {\n kind;\n size;\n alignment;\n flatTypes;\n witName;\n id;\n callables;\n constructor(witName, id) {\n this.kind = ComponentModelTypeKind.resource;\n this.size = exports.u32.size;\n this.alignment = exports.u32.alignment;\n this.flatTypes = exports.u32.flatTypes;\n this.witName = witName;\n this.id = id;\n this.callables = new Map();\n }\n addConstructor(jsName, func) {\n this.callables.set(jsName, func);\n }\n addDestructor(jsName, func) {\n this.callables.set(jsName, func);\n }\n addStaticMethod(jsName, func) {\n this.callables.set(jsName, func);\n }\n addMethod(jsName, func) {\n this.callables.set(jsName, func);\n }\n getCallable(jsName) {\n const result = this.callables.get(jsName);\n if (result === undefined) {\n throw new ComponentModelTrap(`Method '${jsName}' not found on resource '${this.witName}'.`);\n }\n return result;\n }\n load(memory, offset, context) {\n const handle = exports.u32.load(memory, offset, context);\n return context.resources.get(this.id).$resource(handle);\n }\n liftFlat(memory, values, context) {\n const handle = exports.u32.liftFlat(memory, values, context);\n return context.resources.get(this.id).$resource(handle);\n }\n alloc(memory) {\n return exports.u32.alloc(memory);\n }\n store(memory, offset, value, context) {\n const handle = context.resources.get(this.id).$handle(value);\n exports.u32.store(memory, offset, handle, context);\n }\n lowerFlat(result, memory, value, context) {\n const handle = context.resources.get(this.id).$handle(value);\n exports.u32.lowerFlat(result, memory, handle, context);\n }\n copy(dest, dest_offset, src, src_offset, context) {\n exports.u32.copy(dest, dest_offset, src, src_offset, context);\n }\n}\nexports.ResourceType = ResourceType;\nclass AbstractWrapperType {\n kind;\n size;\n alignment;\n flatTypes;\n wrapped;\n constructor(kind, wrapped) {\n this.kind = kind;\n this.wrapped = wrapped;\n this.size = exports.u32.size;\n this.alignment = exports.u32.alignment;\n this.flatTypes = exports.u32.flatTypes;\n }\n load(memory, offset, context) {\n return this.wrapped.load(memory, offset, context);\n }\n liftFlat(memory, values, context) {\n return this.wrapped.liftFlat(memory, values, context);\n }\n alloc(memory) {\n return exports.u32.alloc(memory);\n }\n store(memory, offset, value, context) {\n return this.wrapped.store(memory, offset, value, context);\n }\n lowerFlat(result, memory, value, context) {\n return this.wrapped.lowerFlat(result, memory, value, context);\n }\n copy(dest, dest_offset, src, src_offset, context) {\n return this.wrapped.copy(dest, dest_offset, src, src_offset, context);\n }\n}\nclass BorrowType extends AbstractWrapperType {\n constructor(type) {\n super(ComponentModelTypeKind.borrow, type);\n }\n}\nexports.BorrowType = BorrowType;\nclass OwnType extends AbstractWrapperType {\n constructor(type) {\n super(ComponentModelTypeKind.own, type);\n }\n}\nexports.OwnType = OwnType;\nvar ComponentModelTypeVisitor;\n(function (ComponentModelTypeVisitor) {\n function visit(type, visitor) {\n switch (type.kind) {\n case ComponentModelTypeKind.u8:\n visitor.visitU8 !== undefined && visitor.visitU8(type);\n break;\n case ComponentModelTypeKind.u16:\n visitor.visitU16 !== undefined && visitor.visitU16(type);\n break;\n case ComponentModelTypeKind.u32:\n visitor.visitU32 !== undefined && visitor.visitU32(type);\n break;\n case ComponentModelTypeKind.u64:\n visitor.visitU64 !== undefined && visitor.visitU64(type);\n break;\n case ComponentModelTypeKind.s8:\n visitor.visitS8 !== undefined && visitor.visitS8(type);\n break;\n case ComponentModelTypeKind.s16:\n visitor.visitS16 !== undefined && visitor.visitS16(type);\n break;\n case ComponentModelTypeKind.s32:\n visitor.visitS32 !== undefined && visitor.visitS32(type);\n break;\n case ComponentModelTypeKind.s64:\n visitor.visitS64 !== undefined && visitor.visitS64(type);\n break;\n case ComponentModelTypeKind.float32:\n visitor.visitFloat32 !== undefined && visitor.visitFloat32(type);\n break;\n case ComponentModelTypeKind.float64:\n visitor.visitFloat64 !== undefined && visitor.visitFloat64(type);\n break;\n case ComponentModelTypeKind.bool:\n visitor.visitBool !== undefined && visitor.visitBool(type);\n break;\n case ComponentModelTypeKind.string:\n visitor.visitString !== undefined && visitor.visitString(type);\n break;\n case ComponentModelTypeKind.enum:\n visitor.visitEnum !== undefined && visitor.visitEnum(type);\n break;\n case ComponentModelTypeKind.flags:\n visitor.visitFlags !== undefined && visitor.visitFlags(type);\n break;\n case ComponentModelTypeKind.borrow:\n visitor.visitBorrow !== undefined && visitor.visitBorrow(type);\n break;\n case ComponentModelTypeKind.own:\n visitor.visitOwn !== undefined && visitor.visitOwn(type);\n break;\n case ComponentModelTypeKind.resource:\n visitor.visitResource !== undefined && visitor.visitResource(type);\n break;\n case ComponentModelTypeKind.resourceHandle:\n visitor.visitResourceHandle !== undefined && visitor.visitResourceHandle(type);\n break;\n case ComponentModelTypeKind.list:\n if (visitor.visitList !== undefined && visitor.visitList(type)) {\n visit(type.elementType, visitor);\n }\n visitor.endVisitList !== undefined && visitor.endVisitList(type);\n break;\n case ComponentModelTypeKind.record:\n if ((visitor.visitRecord !== undefined && visitor.visitRecord(type) || visitor.visitRecord === undefined)) {\n for (const field of type.fields) {\n visit(field.type, visitor);\n }\n }\n visitor.endVisitRecord !== undefined && visitor.endVisitRecord(type);\n break;\n case ComponentModelTypeKind.tuple:\n if ((visitor.visitTuple !== undefined && visitor.visitTuple(type) || visitor.visitTuple === undefined)) {\n for (const field of type.fields) {\n visit(field.type, visitor);\n }\n }\n visitor.endVisitTuple !== undefined && visitor.endVisitTuple(type);\n break;\n case ComponentModelTypeKind.variant:\n if ((visitor.visitVariant !== undefined && visitor.visitVariant(type) || visitor.visitVariant === undefined)) {\n for (const field of type.cases) {\n field.type !== undefined && visit(field.type, visitor);\n }\n }\n visitor.endVisitVariant !== undefined && visitor.endVisitVariant(type);\n break;\n case ComponentModelTypeKind.option:\n if ((visitor.visitOption !== undefined && visitor.visitOption(type) || visitor.visitOption === undefined)) {\n visit(type.valueType, visitor);\n }\n visitor.endVisitOption !== undefined && visitor.endVisitOption(type);\n break;\n case ComponentModelTypeKind.result:\n if ((visitor.visitResult !== undefined && visitor.visitResult(type) || visitor.visitResult === undefined)) {\n for (const field of type.cases) {\n field.type !== undefined && visit(field.type, visitor);\n }\n }\n visitor.endVisitResult !== undefined && visitor.endVisitResult(type);\n break;\n default:\n throw new Error(`Unknown type kind ${type.kind}`);\n }\n }\n ComponentModelTypeVisitor.visit = visit;\n})(ComponentModelTypeVisitor || (exports.ComponentModelTypeVisitor = ComponentModelTypeVisitor = {}));\nvar InterfaceType;\n(function (InterfaceType) {\n function is(value) {\n return typeof value === 'object' && typeof value.id === 'string' && typeof value.witName === 'string'\n && value.types instanceof Map && value.functions instanceof Map && value.resources instanceof Map;\n }\n InterfaceType.is = is;\n})(InterfaceType || (exports.InterfaceType = InterfaceType = {}));\nvar PackageType;\n(function (PackageType) {\n function is(value) {\n return typeof value === 'object' && typeof value.id === 'string' && typeof value.witName === 'string'\n && value.interfaces instanceof Map;\n }\n PackageType.is = is;\n})(PackageType || (exports.PackageType = PackageType = {}));\nvar WasmContext;\n(function (WasmContext) {\n class Default {\n memory;\n options;\n resources;\n constructor() {\n this.options = { encoding: 'utf-8' };\n this.resources = new ResourceManagers.Default();\n }\n initialize(memory) {\n if (this.memory !== undefined) {\n throw new MemoryError(`Memory is already initialized.`);\n }\n this.memory = memory;\n }\n getMemory() {\n if (this.memory === undefined) {\n throw new MemoryError(`Memory not yet initialized.`);\n }\n return this.memory;\n }\n }\n WasmContext.Default = Default;\n})(WasmContext || (exports.WasmContext = WasmContext = {}));\nclass Resource {\n _handle;\n constructor() {\n this._handle = undefined;\n }\n get $handle() {\n return this._handle;\n }\n set $handle(value) {\n if (value === undefined) {\n throw new ComponentModelTrap('Cannot set undefined handle');\n }\n if (this._handle !== undefined) {\n throw new ComponentModelTrap(`Cannot set handle twice. Current handle is ${this._handle} new handle is ${value}.`);\n }\n this._handle = value;\n }\n}\nexports.Resource = Resource;\nvar Imports;\n(function (Imports) {\n function create(functions, resources, service, context) {\n const result = Object.create(null);\n if (functions !== undefined) {\n for (const [funcName, func] of functions) {\n result[func.witName] = createFunction(func, service[funcName], context);\n }\n }\n if (resources !== undefined) {\n for (const [resourceName, resource] of resources) {\n const clazz = service[resourceName];\n let resourceManager;\n if (context.resources.has(resource.id)) {\n resourceManager = context.resources.get(resource.id);\n }\n else {\n resourceManager = ResourceManager.from(clazz) ?? new ResourceManager.Default();\n context.resources.set(resource.id, resourceManager);\n }\n for (const [callableName, callable] of resource.callables) {\n if (callable instanceof ConstructorType) {\n result[callable.witName] = createConstructorFunction(callable, clazz, resourceManager, context);\n }\n else if (callable instanceof StaticMethodType) {\n result[callable.witName] = createStaticMethodFunction(callable, service[resourceName][callableName], context);\n }\n else if (callable instanceof MethodType) {\n result[callable.witName] = createMethodFunction(callableName, callable, resourceManager, context);\n }\n else if (callable instanceof DestructorType) {\n result[callable.witName] = createDestructorFunction(callable, resourceManager);\n }\n }\n }\n }\n return result;\n }\n Imports.create = create;\n function createFunction(callable, serviceFunction, context) {\n return function (...params) {\n return callable.callHost(serviceFunction, params, context);\n };\n }\n function createConstructorFunction(callable, clazz, manager, context) {\n return function (...params) {\n return callable.callHost(clazz, params, manager, context);\n };\n }\n function createDestructorFunction(callable, manager) {\n return function (...params) {\n return callable.callHost(params, manager);\n };\n }\n function createStaticMethodFunction(callable, func, context) {\n return function (...params) {\n return callable.callHost(func, params, context);\n };\n }\n function createMethodFunction(name, callable, manager, context) {\n return function (...params) {\n return callable.callHost(name, params, manager, context);\n };\n }\n})(Imports || (exports.Imports = Imports = {}));\nvar Module;\n(function (Module) {\n function createObjectModule(resource, wasm, context) {\n let resourceManager;\n if (context.resources.has(resource.id)) {\n resourceManager = context.resources.get(resource.id);\n }\n else {\n resourceManager = new ResourceManager.Default();\n context.resources.set(resource.id, resourceManager);\n }\n const result = Object.create(null);\n for (const [name, callable] of resource.callables) {\n if (callable instanceof ConstructorType) {\n result[name] = createConstructorFunction(callable, wasm[callable.witName], context);\n }\n else if (callable instanceof MethodType) {\n result[name] = createMethodFunction(callable, wasm[callable.witName], resourceManager, context);\n }\n else if (callable instanceof DestructorType) {\n result[name] = createDestructorFunction(callable, wasm[callable.witName], context);\n }\n }\n return result;\n }\n Module.createObjectModule = createObjectModule;\n function createClassModule(resource, wasm, context) {\n if (!context.resources.has(resource.id)) {\n context.resources.set(resource.id, new ResourceManager.Default());\n }\n const result = Object.create(null);\n for (const [name, callable] of resource.callables) {\n if (callable instanceof StaticMethodType) {\n result[name] = createStaticMethodFunction(callable, wasm[callable.witName], context);\n }\n }\n return result;\n }\n Module.createClassModule = createClassModule;\n function createConstructorFunction(callable, wasmFunction, context) {\n return (...params) => {\n return callable.callWasm(params, wasmFunction, context);\n };\n }\n function createDestructorFunction(callable, wasmFunction, context) {\n return (...params) => {\n return callable.callWasm(params, wasmFunction, context);\n };\n }\n function createStaticMethodFunction(callable, wasmFunction, context) {\n return (...params) => {\n return callable.callWasm(params, wasmFunction, context);\n };\n }\n function createMethodFunction(callable, wasmFunction, manager, context) {\n return (...params) => {\n return callable.callWasmMethod(params, wasmFunction, manager, context);\n };\n }\n})(Module || (exports.Module = Module = {}));\nvar Exports;\n(function (Exports) {\n function filter(exports, functions, resources, id, version, _context) {\n const key = version !== undefined ? `${id}@${version}` : id;\n let result = exports[key];\n // We could actually check if all properties exist in the result.\n if (result !== null && typeof result === 'object') {\n return result;\n }\n result = Object.create(null);\n if (functions !== undefined) {\n for (const func of functions.values()) {\n const funcKey = `${key}#${func.witName}`;\n const candidate = exports[funcKey];\n if (candidate !== null && candidate !== undefined) {\n result[func.witName] = candidate;\n }\n }\n }\n if (resources !== undefined) {\n for (const resource of resources.values()) {\n for (const callable of resource.callables.values()) {\n const callableKey = `${key}#${callable.witName}`;\n const candidate = exports[callableKey];\n if (candidate !== null && candidate !== undefined) {\n result[callable.witName] = candidate;\n }\n }\n }\n }\n return result;\n }\n Exports.filter = filter;\n function bind(functions, resources, wasm, context) {\n const result = Object.create(null);\n if (functions !== undefined) {\n for (const [name, func] of functions) {\n result[name] = createFunction(func, wasm[func.witName], context);\n }\n }\n if (resources !== undefined) {\n for (const [name, , factory] of resources) {\n result[name] = factory(wasm, context);\n }\n }\n return result;\n }\n Exports.bind = bind;\n function createFunction(func, wasmFunction, context) {\n return (...params) => {\n return func.callWasm(params, wasmFunction, context);\n };\n }\n})(Exports || (exports.Exports = Exports = {}));\n", "\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RAL = void 0;\nconst ral_1 = __importDefault(require(\"./ral\"));\nexports.RAL = ral_1.default;\n__exportStar(require(\"./componentModel\"), exports);\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nconst ril_1 = __importDefault(require(\"./ril\"));\nril_1.default.install();\n__exportStar(require(\"../common/api\"), exports);\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as vscode from 'vscode';\nimport { WasmContext, Memory } from '@vscode/wasm-component-model';\n\nimport { example } from './example';\nimport calculator = example.calculator;\nimport Types = example.Types;\n\nexport async function activate(context: vscode.ExtensionContext): Promise {\n\t// The channel for printing the result.\n\tconst channel = vscode.window.createOutputChannel('Calculator');\n\tcontext.subscriptions.push(channel);\n\n\t// The channel for printing the log.\n\tconst log = vscode.window.createOutputChannel('Calculator - Log', { log: true });\n\tcontext.subscriptions.push(log);\n\n\t// Load the Wasm module\n\tconst filename = vscode.Uri.joinPath(context.extensionUri, 'target', 'wasm32-unknown-unknown', 'debug', 'calculator.wasm');\n\tconst bits = await vscode.workspace.fs.readFile(filename);\n\tconst module = await WebAssembly.compile(bits);\n\n\t// The implementation of the log function that is called from WASM\n\tconst service: calculator.Imports = {\n\t\tlog: (msg: string) => {\n\t\t\tlog.info(msg);\n\t\t}\n\t}\n\n\t// The context for the WASM module\n\tconst wasmContext: WasmContext.Default = new WasmContext.Default();\n\n\t// Instantiate the module and create the necessary imports from the service implementation\n\tconst instance = await WebAssembly.instantiate(module, calculator._.createImports(service, wasmContext));\n\t// Bind the WASM memory to the context\n\twasmContext.initialize(new Memory.Default(instance.exports));\n\n\t// Bind the JavaScript Api\n\tconst api = calculator._.bindExports(instance.exports as calculator._.Exports, wasmContext);\n\n\tcontext.subscriptions.push(vscode.commands.registerCommand('vscode-samples.wasm-component-model.run', () => {\n\t\tchannel.show();\n\t\tchannel.appendLine('Running calculator example');\n\t\tchannel.appendLine(`Add ${api.calc(Types.Operation.Add({ left: 1, right: 2}))}`);\n\t\tchannel.appendLine(`Sub ${api.calc(Types.Operation.Sub({ left: 10, right: 8 }))}`);\n\t\tchannel.appendLine(`Mul ${api.calc(Types.Operation.Mul({ left: 3, right: 7 }))}`);\n\t\tchannel.appendLine(`Div ${api.calc(Types.Operation.Div({ left: 10, right: 2 }))}`);\n\t}));\n}", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as $wcm from '@vscode/wasm-component-model';\nimport type { u32, i32 } from '@vscode/wasm-component-model';\n\nexport namespace example {\n\texport namespace Types {\n\t\texport type Operands = {\n\t\t\tleft: u32;\n\t\t\tright: u32;\n\t\t};\n\n\t\texport namespace Operation {\n\t\t\texport const add = 'add' as const;\n\t\t\texport type Add = { readonly tag: typeof add; readonly value: Operands } & _common;\n\t\t\texport function Add(value: Operands): Add {\n\t\t\t\treturn new VariantImpl(add, value) as Add;\n\t\t\t}\n\n\t\t\texport const sub = 'sub' as const;\n\t\t\texport type Sub = { readonly tag: typeof sub; readonly value: Operands } & _common;\n\t\t\texport function Sub(value: Operands): Sub {\n\t\t\t\treturn new VariantImpl(sub, value) as Sub;\n\t\t\t}\n\n\t\t\texport const mul = 'mul' as const;\n\t\t\texport type Mul = { readonly tag: typeof mul; readonly value: Operands } & _common;\n\t\t\texport function Mul(value: Operands): Mul {\n\t\t\t\treturn new VariantImpl(mul, value) as Mul;\n\t\t\t}\n\n\t\t\texport const div = 'div' as const;\n\t\t\texport type Div = { readonly tag: typeof div; readonly value: Operands } & _common;\n\t\t\texport function Div(value: Operands): Div {\n\t\t\t\treturn new VariantImpl(div, value) as Div;\n\t\t\t}\n\n\t\t\texport type _tt = typeof add | typeof sub | typeof mul | typeof div;\n\t\t\texport type _vt = Operands | Operands | Operands | Operands;\n\t\t\ttype _common = Omit;\n\t\t\texport function _ctor(t: _tt, v: _vt): Operation {\n\t\t\t\treturn new VariantImpl(t, v) as Operation;\n\t\t\t}\n\t\t\tclass VariantImpl {\n\t\t\t\tprivate readonly _tag: _tt;\n\t\t\t\tprivate readonly _value: _vt;\n\t\t\t\tconstructor(t: _tt, value: _vt) {\n\t\t\t\t\tthis._tag = t;\n\t\t\t\t\tthis._value = value;\n\t\t\t\t}\n\t\t\t\tget tag(): _tt {\n\t\t\t\t\treturn this._tag;\n\t\t\t\t}\n\t\t\t\tget value(): _vt {\n\t\t\t\t\treturn this._value;\n\t\t\t\t}\n\t\t\t\tisAdd(): this is Add {\n\t\t\t\t\treturn this._tag === Operation.add;\n\t\t\t\t}\n\t\t\t\tisSub(): this is Sub {\n\t\t\t\t\treturn this._tag === Operation.sub;\n\t\t\t\t}\n\t\t\t\tisMul(): this is Mul {\n\t\t\t\t\treturn this._tag === Operation.mul;\n\t\t\t\t}\n\t\t\t\tisDiv(): this is Div {\n\t\t\t\t\treturn this._tag === Operation.div;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\texport type Operation = Operation.Add | Operation.Sub | Operation.Mul | Operation.Div;\n\t}\n\texport type Types = {\n\t};\n\texport namespace calculator {\n\t\texport type Operation = Types.Operation;\n\t\texport type Imports = {\n\t\t\tlog: (msg: string) => void;\n\t\t};\n\t\texport type Exports = {\n\t\t\tcalc: (o: Operation) => u32;\n\t\t};\n\t}\n}\n\nexport namespace example {\n\texport namespace Types.$ {\n\t\texport const Operands = new $wcm.RecordType([\n\t\t\t['left', $wcm.u32],\n\t\t\t['right', $wcm.u32],\n\t\t]);\n\t\texport const Operation = new $wcm.VariantType([['add', Operands], ['sub', Operands], ['mul', Operands], ['div', Operands]], example.Types.Operation._ctor);\n\t}\n\texport namespace Types._ {\n\t\texport const id = 'vscode:example/types' as const;\n\t\texport const witName = 'types' as const;\n\t\texport const types: Map = new Map([\n\t\t\t['Operands', $.Operands],\n\t\t\t['Operation', $.Operation]\n\t\t]);\n\t}\n\texport namespace calculator.$ {\n\t\texport const Operation = Types.$.Operation;\n\t\texport namespace Imports {\n\t\t\texport const log = new $wcm.FunctionType('log',[\n\t\t\t\t['msg', $wcm.wstring],\n\t\t\t], undefined);\n\t\t}\n\t\texport namespace Exports {\n\t\t\texport const calc = new $wcm.FunctionType('calc',[\n\t\t\t\t['o', Operation],\n\t\t\t], $wcm.u32);\n\t\t}\n\t}\n\texport namespace calculator._ {\n\t\texport const id = 'vscode:example/calculator' as const;\n\t\texport const witName = 'calculator' as const;\n\t\texport type $Root = {\n\t\t\t'log': (msg_ptr: i32, msg_len: i32) => void;\n\t\t}\n\t\texport namespace Imports {\n\t\t\texport const functions: Map = new Map([\n\t\t\t\t['log', $.Imports.log]\n\t\t\t]);\n\t\t\texport const interfaces: Map = new Map([\n\t\t\t\t['Types', Types._]\n\t\t\t]);\n\t\t}\n\t\texport type Imports = {\n\t\t\t'$root': $Root;\n\t\t};\n\t\texport namespace Exports {\n\t\t\texport const functions: Map = new Map([\n\t\t\t\t['calc', $.Exports.calc]\n\t\t\t]);\n\t\t}\n\t\texport type Exports = {\n\t\t\t'calc': (o_Operation_case: i32, o_Operation_0: i32, o_Operation_1: i32) => i32;\n\t\t};\n\t\texport function createImports(service: calculator.Imports, context: $wcm.WasmContext): Imports {\n\t\t\tconst result: Imports = Object.create(null);\n\t\t\tresult['$root'] = $wcm.Imports.create<$Root>(Imports.functions, undefined, service, context);\n\t\t\treturn result;\n\t\t}\n\t\texport function bindExports(exports: Exports, context: $wcm.WasmContext): calculator.Exports {\n\t\t\tconst result: calculator.Exports = Object.create(null);\n\t\t\tObject.assign(result, $wcm.Exports.bind(Exports.functions, undefined, exports, context));\n\t\t\treturn result;\n\t\t}\n\t}\n}\n\nexport namespace example._ {\n\texport const id = 'vscode:example' as const;\n\texport const witName = 'example' as const;\n\texport const interfaces: Map = new Map([\n\t\t['Types', Types._]\n\t]);\n\texport const worlds: Map = new Map([\n\t\t['calculator', calculator._]\n\t]);\n}"], - "mappings": "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", - "names": ["RAL", "RIL", "result", "ResourceManager", "ResourceManagers", "BigInts", "Alignment", "align", "Memory", "exports", "FlatTypeKind", "$i32", "$i64", "$f32", "$f64", "WasmTypes", "ComponentModelTypeKind", "$u8", "$u16", "$u32", "$u64", "$s8", "$s16", "$s32", "$s64", "$float32", "$float64", "$wchar", "$wstring", "RecordField", "RecordType", "TupleField", "VariantCase", "VariantType", "option", "Error", "FunctionType", "ComponentModelTypeVisitor", "InterfaceType", "PackageType", "WasmContext", "Imports", "Module", "Exports", "exports", "exports", "example", "Types", "Operation", "$", "_", "calculator", "Imports", "Exports", "module"] -} diff --git a/wasm-component-model/package-lock.json b/wasm-component-model/package-lock.json index 5a9958af..3ec6db92 100644 --- a/wasm-component-model/package-lock.json +++ b/wasm-component-model/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "@vscode/wasm-component-model": "0.1.0-pre.3" + "@vscode/wasm-component-model": "0.1.0-pre.11" }, "devDependencies": { "@types/node": "^18.14.6", @@ -794,9 +794,9 @@ "dev": true }, "node_modules/@vscode/wasm-component-model": { - "version": "0.1.0-pre.3", - "resolved": "https://registry.npmjs.org/@vscode/wasm-component-model/-/wasm-component-model-0.1.0-pre.3.tgz", - "integrity": "sha512-1QgbcblhfBD3crZswJ3JchlwXvVSyYrxNMvVRxEkhjmW9LXYiOXFLT+iyc7yk95LSgYVWDrE5g4CRD2dXmB3sg==", + "version": "0.1.0-pre.11", + "resolved": "https://registry.npmjs.org/@vscode/wasm-component-model/-/wasm-component-model-0.1.0-pre.11.tgz", + "integrity": "sha512-52MPesjJMOgpv4K/Knek5J/szqquVx7Ji2IVfgEXYDUoE80u4aQSkPwnCBSoaIf4fECDTBtjijl4s7zAKq/58w==", "dependencies": { "semver": "^7.6.0", "uuid": "^9.0.1", diff --git a/wasm-component-model/package.json b/wasm-component-model/package.json index 7514df8b..1e74c134 100644 --- a/wasm-component-model/package.json +++ b/wasm-component-model/package.json @@ -29,7 +29,7 @@ ] }, "dependencies": { - "@vscode/wasm-component-model": "0.1.0-pre.3" + "@vscode/wasm-component-model": "0.1.0-pre.11" }, "devDependencies": { "@types/vscode": "1.88.0", @@ -48,7 +48,7 @@ "watch": "tsc -b -w", "lint": "eslint ./src --ext .ts,.tsx", "esbuild": "node ./bin/esbuild.js", - "generate:model": "wit2ts --noMain --outDir ./src ./wit", + "generate:model": "wit2ts --outDir ./src ./wit", "serve": "serve --cors -l 5000 --ssl-cert $HOME/certs/localhost.pem --ssl-key $HOME/certs/localhost-key.pem" } } \ No newline at end of file diff --git a/wasm-component-model/src/calculator.ts b/wasm-component-model/src/calculator.ts new file mode 100644 index 00000000..08f21313 --- /dev/null +++ b/wasm-component-model/src/calculator.ts @@ -0,0 +1,151 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/* eslint-disable @typescript-eslint/ban-types */ +import * as $wcm from '@vscode/wasm-component-model'; +import type { u32, i32 } from '@vscode/wasm-component-model'; + +export namespace Types { + export type Operands = { + left: u32; + right: u32; + }; + + export namespace Operation { + export const add = 'add' as const; + export type Add = { readonly tag: typeof add; readonly value: Operands } & _common; + export function Add(value: Operands): Add { + return new VariantImpl(add, value) as Add; + } + + export const sub = 'sub' as const; + export type Sub = { readonly tag: typeof sub; readonly value: Operands } & _common; + export function Sub(value: Operands): Sub { + return new VariantImpl(sub, value) as Sub; + } + + export const mul = 'mul' as const; + export type Mul = { readonly tag: typeof mul; readonly value: Operands } & _common; + export function Mul(value: Operands): Mul { + return new VariantImpl(mul, value) as Mul; + } + + export const div = 'div' as const; + export type Div = { readonly tag: typeof div; readonly value: Operands } & _common; + export function Div(value: Operands): Div { + return new VariantImpl(div, value) as Div; + } + + export type _tt = typeof add | typeof sub | typeof mul | typeof div; + export type _vt = Operands | Operands | Operands | Operands; + type _common = Omit; + export function _ctor(t: _tt, v: _vt): Operation { + return new VariantImpl(t, v) as Operation; + } + class VariantImpl { + private readonly _tag: _tt; + private readonly _value: _vt; + constructor(t: _tt, value: _vt) { + this._tag = t; + this._value = value; + } + get tag(): _tt { + return this._tag; + } + get value(): _vt { + return this._value; + } + isAdd(): this is Add { + return this._tag === Operation.add; + } + isSub(): this is Sub { + return this._tag === Operation.sub; + } + isMul(): this is Mul { + return this._tag === Operation.mul; + } + isDiv(): this is Div { + return this._tag === Operation.div; + } + } + } + export type Operation = Operation.Add | Operation.Sub | Operation.Mul | Operation.Div; +} +export type Types = { +}; +export namespace calculator { + export type Operation = Types.Operation; + export type Imports = { + log: (msg: string) => void; + }; + export type Exports = { + calc: (o: Operation) => u32; + }; +} + +export namespace Types.$ { + export const Operands = new $wcm.RecordType([ + ['left', $wcm.u32], + ['right', $wcm.u32], + ]); + export const Operation = new $wcm.VariantType([['add', Operands], ['sub', Operands], ['mul', Operands], ['div', Operands]], Types.Operation._ctor); +} +export namespace Types._ { + export const id = 'vscode:example/types' as const; + export const witName = 'types' as const; + export const types: Map = new Map([ + ['Operands', $.Operands], + ['Operation', $.Operation] + ]); + export type WasmInterface = { + }; +} +export namespace calculator.$ { + export const Operation = Types.$.Operation; + export namespace imports { + export const log = new $wcm.FunctionType('log',[ + ['msg', $wcm.wstring], + ], undefined); + } + export namespace exports { + export const calc = new $wcm.FunctionType('calc',[ + ['o', Operation], + ], $wcm.u32); + } +} +export namespace calculator._ { + export const id = 'vscode:example/calculator' as const; + export const witName = 'calculator' as const; + export type $Root = { + 'log': (msg_ptr: i32, msg_len: i32) => void; + }; + export type Imports = { + '$root': $Root; + }; + export namespace imports { + export const functions: Map = new Map([ + ['log', $.imports.log] + ]); + export const interfaces: Map = new Map([ + ['Types', Types._] + ]); + export function create(service: calculator.Imports, context: $wcm.WasmContext): Imports { + return $wcm.Imports.create(_, service, context); + } + export function loop(service: calculator.Imports, context: $wcm.WasmContext): calculator.Imports { + return $wcm.Imports.loop(_, service, context); + } + } + export type Exports = { + 'calc': (o_Operation_case: i32, o_Operation_0: i32, o_Operation_1: i32) => i32; + }; + export namespace exports { + export const functions: Map = new Map([ + ['calc', $.exports.calc] + ]); + export function bind(exports: Exports, context: $wcm.WasmContext): calculator.Exports { + return $wcm.Exports.bind(_, exports, context); + } + } +} \ No newline at end of file diff --git a/wasm-component-model/src/example.ts b/wasm-component-model/src/example.ts deleted file mode 100644 index 86ff48db..00000000 --- a/wasm-component-model/src/example.ts +++ /dev/null @@ -1,164 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -import * as $wcm from '@vscode/wasm-component-model'; -import type { u32, i32 } from '@vscode/wasm-component-model'; - -export namespace example { - export namespace Types { - export type Operands = { - left: u32; - right: u32; - }; - - export namespace Operation { - export const add = 'add' as const; - export type Add = { readonly tag: typeof add; readonly value: Operands } & _common; - export function Add(value: Operands): Add { - return new VariantImpl(add, value) as Add; - } - - export const sub = 'sub' as const; - export type Sub = { readonly tag: typeof sub; readonly value: Operands } & _common; - export function Sub(value: Operands): Sub { - return new VariantImpl(sub, value) as Sub; - } - - export const mul = 'mul' as const; - export type Mul = { readonly tag: typeof mul; readonly value: Operands } & _common; - export function Mul(value: Operands): Mul { - return new VariantImpl(mul, value) as Mul; - } - - export const div = 'div' as const; - export type Div = { readonly tag: typeof div; readonly value: Operands } & _common; - export function Div(value: Operands): Div { - return new VariantImpl(div, value) as Div; - } - - export type _tt = typeof add | typeof sub | typeof mul | typeof div; - export type _vt = Operands | Operands | Operands | Operands; - type _common = Omit; - export function _ctor(t: _tt, v: _vt): Operation { - return new VariantImpl(t, v) as Operation; - } - class VariantImpl { - private readonly _tag: _tt; - private readonly _value: _vt; - constructor(t: _tt, value: _vt) { - this._tag = t; - this._value = value; - } - get tag(): _tt { - return this._tag; - } - get value(): _vt { - return this._value; - } - isAdd(): this is Add { - return this._tag === Operation.add; - } - isSub(): this is Sub { - return this._tag === Operation.sub; - } - isMul(): this is Mul { - return this._tag === Operation.mul; - } - isDiv(): this is Div { - return this._tag === Operation.div; - } - } - } - export type Operation = Operation.Add | Operation.Sub | Operation.Mul | Operation.Div; - } - export type Types = { - }; - export namespace calculator { - export type Operation = Types.Operation; - export type Imports = { - log: (msg: string) => void; - }; - export type Exports = { - calc: (o: Operation) => u32; - }; - } -} - -export namespace example { - export namespace Types.$ { - export const Operands = new $wcm.RecordType([ - ['left', $wcm.u32], - ['right', $wcm.u32], - ]); - export const Operation = new $wcm.VariantType([['add', Operands], ['sub', Operands], ['mul', Operands], ['div', Operands]], example.Types.Operation._ctor); - } - export namespace Types._ { - export const id = 'vscode:example/types' as const; - export const witName = 'types' as const; - export const types: Map = new Map([ - ['Operands', $.Operands], - ['Operation', $.Operation] - ]); - } - export namespace calculator.$ { - export const Operation = Types.$.Operation; - export namespace Imports { - export const log = new $wcm.FunctionType('log',[ - ['msg', $wcm.wstring], - ], undefined); - } - export namespace Exports { - export const calc = new $wcm.FunctionType('calc',[ - ['o', Operation], - ], $wcm.u32); - } - } - export namespace calculator._ { - export const id = 'vscode:example/calculator' as const; - export const witName = 'calculator' as const; - export type $Root = { - 'log': (msg_ptr: i32, msg_len: i32) => void; - } - export namespace Imports { - export const functions: Map = new Map([ - ['log', $.Imports.log] - ]); - export const interfaces: Map = new Map([ - ['Types', Types._] - ]); - } - export type Imports = { - '$root': $Root; - }; - export namespace Exports { - export const functions: Map = new Map([ - ['calc', $.Exports.calc] - ]); - } - export type Exports = { - 'calc': (o_Operation_case: i32, o_Operation_0: i32, o_Operation_1: i32) => i32; - }; - export function createImports(service: calculator.Imports, context: $wcm.WasmContext): Imports { - const result: Imports = Object.create(null); - result['$root'] = $wcm.Imports.create<$Root>(Imports.functions, undefined, service, context); - return result; - } - export function bindExports(exports: Exports, context: $wcm.WasmContext): calculator.Exports { - const result: calculator.Exports = Object.create(null); - Object.assign(result, $wcm.Exports.bind(Exports.functions, undefined, exports, context)); - return result; - } - } -} - -export namespace example._ { - export const id = 'vscode:example' as const; - export const witName = 'example' as const; - export const interfaces: Map = new Map([ - ['Types', Types._] - ]); - export const worlds: Map = new Map([ - ['calculator', calculator._] - ]); -} \ No newline at end of file diff --git a/wasm-component-model/src/extension.ts b/wasm-component-model/src/extension.ts index d274bf50..f114f4af 100644 --- a/wasm-component-model/src/extension.ts +++ b/wasm-component-model/src/extension.ts @@ -5,9 +5,8 @@ import * as vscode from 'vscode'; import { WasmContext, Memory } from '@vscode/wasm-component-model'; -import { example } from './example'; -import calculator = example.calculator; -import Types = example.Types; +// Import the code generated by wit2ts +import { Types, calculator } from './calculator'; export async function activate(context: vscode.ExtensionContext): Promise { // The channel for printing the result. @@ -28,25 +27,32 @@ export async function activate(context: vscode.ExtensionContext): Promise log: (msg: string) => { log.info(msg); } - } + }; // The context for the WASM module const wasmContext: WasmContext.Default = new WasmContext.Default(); - // Instantiate the module and create the necessary imports from the service implementation - const instance = await WebAssembly.instantiate(module, calculator._.createImports(service, wasmContext)); + // Create the bindings to import the log function into the WASM module + const imports = calculator._.imports.create(service, wasmContext); + // Instantiate the module + const instance = await WebAssembly.instantiate(module, imports); + // Bind the WASM memory to the context wasmContext.initialize(new Memory.Default(instance.exports)); - // Bind the JavaScript Api - const api = calculator._.bindExports(instance.exports as calculator._.Exports, wasmContext); + // Bind the TypeScript Api + const api = calculator._.exports.bind(instance.exports as calculator._.Exports, wasmContext); context.subscriptions.push(vscode.commands.registerCommand('vscode-samples.wasm-component-model.run', () => { channel.show(); channel.appendLine('Running calculator example'); - channel.appendLine(`Add ${api.calc(Types.Operation.Add({ left: 1, right: 2}))}`); - channel.appendLine(`Sub ${api.calc(Types.Operation.Sub({ left: 10, right: 8 }))}`); - channel.appendLine(`Mul ${api.calc(Types.Operation.Mul({ left: 3, right: 7 }))}`); - channel.appendLine(`Div ${api.calc(Types.Operation.Div({ left: 10, right: 2 }))}`); + const add = Types.Operation.Add({ left: 1, right: 2}); + channel.appendLine(`Add ${api.calc(add)}`); + const sub = Types.Operation.Sub({ left: 10, right: 8 }); + channel.appendLine(`Sub ${api.calc(sub)}`); + const mul = Types.Operation.Mul({ left: 3, right: 7 }); + channel.appendLine(`Mul ${api.calc(mul)}`); + const div = Types.Operation.Div({ left: 10, right: 2 }); + channel.appendLine(`Div ${api.calc(div)}`); })); } \ No newline at end of file diff --git a/wasm-component-model/src/lib.rs b/wasm-component-model/src/lib.rs index 2b184033..b343c8f9 100644 --- a/wasm-component-model/src/lib.rs +++ b/wasm-component-model/src/lib.rs @@ -5,11 +5,11 @@ wit_bindgen::generate!({ world: "calculator", }); -struct MyType; +struct Calculator; -impl Guest for MyType { +impl Guest for Calculator { - fn calc(op: Operation) -> u32 { + fn calc(op: Operation) -> u32 { log(&format!("Starting calculation: {:?}", op)); let result = match op { Operation::Add(operands) => operands.left + operands.right, @@ -18,8 +18,9 @@ impl Guest for MyType { Operation::Div(operands) => operands.left / operands.right, }; log(&format!("Finished calculation: {:?}", op)); - return result; + result } } -export!(MyType); \ No newline at end of file +// Export the Calculator to the extension code. +export!(Calculator); \ No newline at end of file diff --git a/wasm-language-server/client/package-lock.json b/wasm-language-server/client/package-lock.json index 4dad9497..1b620306 100644 --- a/wasm-language-server/client/package-lock.json +++ b/wasm-language-server/client/package-lock.json @@ -1,15 +1,15 @@ { "name": "client", - "version": "1.0.0", + "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "client", - "version": "1.0.0", + "version": "0.1.0", "license": "MIT", "dependencies": { - "@vscode/wasm-wasi-lsp": "0.1.0-pre.1" + "@vscode/wasm-wasi-lsp": "0.1.0-pre.3" }, "devDependencies": { "@types/node": "^18.14.6", @@ -52,15 +52,15 @@ } }, "node_modules/@vscode/wasm-wasi-lsp": { - "version": "0.1.0-pre.1", - "resolved": "https://registry.npmjs.org/@vscode/wasm-wasi-lsp/-/wasm-wasi-lsp-0.1.0-pre.1.tgz", - "integrity": "sha512-xB6Jjo7v1JnJsxH18/d1GyhXqi3wqLe20cyvfQQp2XOKzapgGJC+CGL+Hc5w3BubOKwwcbHe6mtaMEKgArrv5A==", + "version": "0.1.0-pre.3", + "resolved": "https://registry.npmjs.org/@vscode/wasm-wasi-lsp/-/wasm-wasi-lsp-0.1.0-pre.3.tgz", + "integrity": "sha512-3qgroKPvPKNcXd8Nl7DQINqSQtAoQ/6dix/X3b2fgdgJyBkISz/gNK5HfLBBC06lFCZlwP5gpaj1nx64No2y3A==", "engines": { "node": ">=18.18.2" }, "peerDependencies": { "@vscode/wasm-wasi": "0.13.0-pre.1", - "vscode-languageclient": "10.0.0-next.3" + "vscode-languageclient": "10.0.0-next.5" } }, "node_modules/ansi-regex": { @@ -260,9 +260,9 @@ } }, "node_modules/vscode-languageclient": { - "version": "10.0.0-next.3", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-10.0.0-next.3.tgz", - "integrity": "sha512-jJhPdZaiELpPRnCUt8kQcF2HJuvzLgeW4HOGc6dp8Je+p08ndueVT4fpSsbly6KiEHr/Ri73tNz0CSfsOye6MA==", + "version": "10.0.0-next.5", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-10.0.0-next.5.tgz", + "integrity": "sha512-JIf1WE7fvV0RElFM062bAummI433vcxuFwqoYAp+1zTVhta/jznxkTz1zs3Hbj2tiDfclf0TZ0qCxflAP1mY2Q==", "peer": true, "dependencies": { "minimatch": "^9.0.3", diff --git a/wasm-language-server/client/package.json b/wasm-language-server/client/package.json index 842eb41d..c03ce1ff 100644 --- a/wasm-language-server/client/package.json +++ b/wasm-language-server/client/package.json @@ -3,7 +3,7 @@ "description": "The language client", "author": "Microsoft Corporation", "license": "MIT", - "version": "1.0.0", + "version": "0.1.0", "repository": { "type": "git", "url": "https://github.com/Microsoft/vscode-extension-samples" @@ -22,7 +22,7 @@ "main": "./out/extension", "browser": "./dist/web/extension", "dependencies": { - "@vscode/wasm-wasi-lsp": "0.1.0-pre.1" + "@vscode/wasm-wasi-lsp": "0.1.0-pre.3" }, "devDependencies": { "@types/vscode": "1.88.0", diff --git a/wasm-language-server/client/src/extension.ts b/wasm-language-server/client/src/extension.ts index dbb099dd..88fd9689 100644 --- a/wasm-language-server/client/src/extension.ts +++ b/wasm-language-server/client/src/extension.ts @@ -3,8 +3,8 @@ * Licensed under the MIT License. See License.txt in the project root for license information. * ------------------------------------------------------------------------------------------ */ -import { ExtensionContext, Uri, window, workspace } from 'vscode'; -import { LanguageClient, LanguageClientOptions, ServerOptions } from 'vscode-languageclient/node'; +import { ExtensionContext, Uri, window, workspace, commands } from 'vscode'; +import { LanguageClient, LanguageClientOptions, ServerOptions, RequestType } from 'vscode-languageclient/node'; import { Wasm, ProcessOptions } from '@vscode/wasm-wasi'; import { createStdioOptions, startServer } from '@vscode/wasm-wasi-lsp'; @@ -46,6 +46,17 @@ export async function activate(context: ExtensionContext) { } catch (error) { client.error(`Start failed`, error, 'force'); } + + type CountFileParams = { folder: string }; + const CountFilesRequest = new RequestType('wasm-language-server/countFilesInFolder'); + context.subscriptions.push(commands.registerCommand('vscode-samples.wasm-language-server.countFiles', async () => { + // We assume we do have a folder. + const folder = workspace.workspaceFolders![0].uri; + // We need to convert the folder URI to a URI that maps to the mounted WASI file system. This is something + // @vscode/wasm-wasi-lsp does for us. + const result = await client.sendRequest(CountFilesRequest, { folder: client.code2ProtocolConverter.asUri(folder!) }); + window.showInformationMessage(`The workspace contains ${result} files.`); + })); } export function deactivate() { diff --git a/wasm-language-server/package.json b/wasm-language-server/package.json index 329f3b19..d930aa25 100644 --- a/wasm-language-server/package.json +++ b/wasm-language-server/package.json @@ -27,6 +27,15 @@ "extensionDependencies": [ "ms-vscode.wasm-wasi-core" ], + "contributes": { + "commands": [ + { + "command": "vscode-samples.wasm-language-server.countFiles", + "category": "Samples", + "title": "Count Files" + } + ] + }, "dependencies": { }, "devDependencies": { diff --git a/wasm-language-server/server/Cargo.lock b/wasm-language-server/server/Cargo.lock index 8a1a2de5..3e1c0128 100644 --- a/wasm-language-server/server/Cargo.lock +++ b/wasm-language-server/server/Cargo.lock @@ -109,6 +109,15 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + [[package]] name = "serde" version = "1.0.197" @@ -159,6 +168,7 @@ dependencies = [ "lsp-types", "serde", "serde_json", + "walkdir", ] [[package]] @@ -219,3 +229,44 @@ dependencies = [ "percent-encoding", "serde", ] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/wasm-language-server/server/Cargo.toml b/wasm-language-server/server/Cargo.toml index d3b7c923..95121791 100644 --- a/wasm-language-server/server/Cargo.toml +++ b/wasm-language-server/server/Cargo.toml @@ -8,5 +8,6 @@ edition = "2021" [dependencies] lsp-server = "0.7.6" lsp-types = "0.95.1" +walkdir = "2" serde = "1.0.189" serde_json = "1.0.107" \ No newline at end of file diff --git a/wasm-language-server/server/src/main.rs b/wasm-language-server/server/src/main.rs index 973f28a3..5d14c36c 100644 --- a/wasm-language-server/server/src/main.rs +++ b/wasm-language-server/server/src/main.rs @@ -4,13 +4,11 @@ *--------------------------------------------------------------------------------------------*/ use std::error::Error; -use lsp_types::OneOf; use lsp_types::{ - request::GotoDefinition, GotoDefinitionResponse, InitializeParams, ServerCapabilities, - Location + request::GotoDefinition, GotoDefinitionResponse, InitializeParams, + ServerCapabilities, Location, OneOf }; - -use lsp_server::{Connection, ExtractError, Message, Request, RequestId, Response}; +use lsp_server::{ Connection, ExtractError, Message, RequestId, Response }; fn main() -> Result<(), Box> { // Note that we must have our logging only write out to stderr. @@ -35,10 +33,7 @@ fn main() -> Result<(), Box> { Ok(()) } -fn main_loop( - connection: Connection, - params: serde_json::Value, -) -> Result<(), Box> { +fn main_loop(connection: Connection, params: serde_json::Value) -> Result<(), Box> { let _params: InitializeParams = serde_json::from_value(params).unwrap(); for msg in &connection.receiver { match msg { @@ -61,7 +56,6 @@ fn main_loop( Err(err @ ExtractError::JsonError { .. }) => panic!("{err:?}"), Err(ExtractError::MethodMismatch(req)) => req, }; - // ... } Message::Response(resp) => { eprintln!("got response: {resp:?}"); @@ -74,10 +68,10 @@ fn main_loop( Ok(()) } -fn cast(req: Request) -> Result<(RequestId, R::Params), ExtractError> +fn cast(req: lsp_server::Request) -> Result<(RequestId, R::Params), ExtractError> where R: lsp_types::request::Request, R::Params: serde::de::DeserializeOwned, { req.extract(R::METHOD) -} +} \ No newline at end of file diff --git a/wasm-language-server/testbed/workspace/test.txt b/wasm-language-server/testbed/workspace/test.txt new file mode 100644 index 00000000..a9ed77c8 --- /dev/null +++ b/wasm-language-server/testbed/workspace/test.txt @@ -0,0 +1 @@ +Some text. \ No newline at end of file