Simple test project that sets up a hybrid cargo crate with a vite project

chore: setup workspace

chore: cleaning up workspace

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

chore: settings adjustments

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

chore: more workspace cleanup

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

chore: cleanup

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

chore: more workspace configuration changes

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

chore: fix playground

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

chore: workspace config

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

chore: workspace config

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

chore: wrap with result type

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

chore: formatting changes

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

docs: add typescript example

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

chore: workspace cleanup

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

chore: workspace configuration

Signed-off-by: Jonathan Basniak <9uknek65z@mozmail.com>

+672 -1184
+12
.editorconfig
··· 1 + root = true 2 + 3 + [*] 4 + indent_size = 2 5 + indent_style = space 6 + end_of_line = lf 7 + charset = utf-8 8 + trim_trailing_whitespace = true 9 + insert_final_newline = true 10 + 11 + [*.md] 12 + trim_trailing_whitespace = false
+8
.prettierignore
··· 1 + node_modules 2 + .nuxt 3 + .output 4 + dist 5 + ios 6 + android 7 + pnpm-*.yaml 8 + pkg/
+4
.prettierrc
··· 1 + { 2 + "semi": false, 3 + "singleQuote": true 4 + }
+52
.vscode/settings.json
··· 1 + { 2 + "deno.enable": false, 3 + "prettier.enable": true, 4 + "eslint.enable": false, 5 + "eslint.format.enable": false, 6 + "eslint.validate": [ 7 + "javascript", 8 + "javascriptreact", 9 + "typescript", 10 + "typescriptreact", 11 + "vue", 12 + "json" 13 + ], 14 + "editor.formatOnSave": true, 15 + "editor.codeActionsOnSave": { 16 + "source.fixAll": "never", 17 + "source.organizeImports": "never", 18 + "source.fixAll.eslint": "explicit" 19 + }, 20 + "files.associations": { 21 + "*.css": "tailwindcss" 22 + }, 23 + "editor.quickSuggestions": { 24 + "strings": "on" 25 + }, 26 + "tailwindCSS.classAttributes": [ 27 + "class", 28 + "ui", 29 + "active-class", 30 + "inactive-class" 31 + ], 32 + "tailwindCSS.experimental.classRegex": [ 33 + ["ui:\\s*{([^)]*)\\s*}", "(?:'|\"|`)([^']*)(?:'|\"|`)"] 34 + ], 35 + "typescript.tsdk": "node_modules/typescript/lib", 36 + "typescript.enablePromptUseWorkspaceTsdk": true, 37 + "explorer.fileNesting.enabled": true, 38 + "explorer.fileNesting.expand": false, 39 + "explorer.sortOrder": "filesFirst", 40 + "explorer.fileNesting.patterns": { 41 + "package.json": "*.config.js, *.config.ts, *.workspace.ts, .nvmrc, yarn.lock, .npmrc, pnpm-lock.yaml, pnpm-workspace.yaml", 42 + "tsconfig.json": "tsconfig.*.json", 43 + ".editorconfig": "eslint.config.mjs, .prettierrc, .prettierignore, .gitignore", 44 + ".env.local": "*.env, .env.*, .envrc, .env.d.ts", 45 + ".gitignore": ".gitattributes, .gitmodules, .gitmessage, .lfsconfig, .mailmap, .git-blame*", 46 + "README*": "AUTHORS, Authors, BACKERS*, Backers*, CHANGELOG*, CITATION*, CODEOWNERS, CODE_OF_CONDUCT*, CONTRIBUTING*, CONTRIBUTORS, COPYING*, CREDITS, Changelog*, Citation*, Code_Of_Conduct*, Codeowners, Contributing*, Contributors, Copying*, Credits, GOVERNANCE.MD, Governance.md, HISTORY.MD, History.md, LICENSE*, License*, MAINTAINERS, Maintainers, README-*, README_*, RELEASE_NOTES*, ROADMAP.MD, Readme-*, Readme_*, Release_Notes*, Roadmap.md, SECURITY.MD, SPONSORS*, Security.md, Sponsors*, authors, backers*, changelog*, citation*, code_of_conduct*, codeowners, contributing*, contributors, copying*, credits, governance.md, history.md, license*, maintainers, readme-*, readme_*, release_notes*, roadmap.md, security.md, sponsors*", 47 + "Dockerfile": "*.dockerfile, .devcontainer.*, .dockerignore, captain-definition, compose.*, docker-compose.*, dockerfile*", 48 + "*.ts": "${basename}.*.${extname}, ${capture}.*.tsx", 49 + "*.tsx": "${basename}*.tsx, ${capture}.*.tsx", 50 + "_index.tsx": "$.tsx" 51 + } 52 + }
+373
LICENSE
··· 1 + Mozilla Public License Version 2.0 2 + ================================== 3 + 4 + 1. Definitions 5 + -------------- 6 + 7 + 1.1. "Contributor" 8 + means each individual or legal entity that creates, contributes to 9 + the creation of, or owns Covered Software. 10 + 11 + 1.2. "Contributor Version" 12 + means the combination of the Contributions of others (if any) used 13 + by a Contributor and that particular Contributor's Contribution. 14 + 15 + 1.3. "Contribution" 16 + means Covered Software of a particular Contributor. 17 + 18 + 1.4. "Covered Software" 19 + means Source Code Form to which the initial Contributor has attached 20 + the notice in Exhibit A, the Executable Form of such Source Code 21 + Form, and Modifications of such Source Code Form, in each case 22 + including portions thereof. 23 + 24 + 1.5. "Incompatible With Secondary Licenses" 25 + means 26 + 27 + (a) that the initial Contributor has attached the notice described 28 + in Exhibit B to the Covered Software; or 29 + 30 + (b) that the Covered Software was made available under the terms of 31 + version 1.1 or earlier of the License, but not also under the 32 + terms of a Secondary License. 33 + 34 + 1.6. "Executable Form" 35 + means any form of the work other than Source Code Form. 36 + 37 + 1.7. "Larger Work" 38 + means a work that combines Covered Software with other material, in 39 + a separate file or files, that is not Covered Software. 40 + 41 + 1.8. "License" 42 + means this document. 43 + 44 + 1.9. "Licensable" 45 + means having the right to grant, to the maximum extent possible, 46 + whether at the time of the initial grant or subsequently, any and 47 + all of the rights conveyed by this License. 48 + 49 + 1.10. "Modifications" 50 + means any of the following: 51 + 52 + (a) any file in Source Code Form that results from an addition to, 53 + deletion from, or modification of the contents of Covered 54 + Software; or 55 + 56 + (b) any new file in Source Code Form that contains any Covered 57 + Software. 58 + 59 + 1.11. "Patent Claims" of a Contributor 60 + means any patent claim(s), including without limitation, method, 61 + process, and apparatus claims, in any patent Licensable by such 62 + Contributor that would be infringed, but for the grant of the 63 + License, by the making, using, selling, offering for sale, having 64 + made, import, or transfer of either its Contributions or its 65 + Contributor Version. 66 + 67 + 1.12. "Secondary License" 68 + means either the GNU General Public License, Version 2.0, the GNU 69 + Lesser General Public License, Version 2.1, the GNU Affero General 70 + Public License, Version 3.0, or any later versions of those 71 + licenses. 72 + 73 + 1.13. "Source Code Form" 74 + means the form of the work preferred for making modifications. 75 + 76 + 1.14. "You" (or "Your") 77 + means an individual or a legal entity exercising rights under this 78 + License. For legal entities, "You" includes any entity that 79 + controls, is controlled by, or is under common control with You. For 80 + purposes of this definition, "control" means (a) the power, direct 81 + or indirect, to cause the direction or management of such entity, 82 + whether by contract or otherwise, or (b) ownership of more than 83 + fifty percent (50%) of the outstanding shares or beneficial 84 + ownership of such entity. 85 + 86 + 2. License Grants and Conditions 87 + -------------------------------- 88 + 89 + 2.1. Grants 90 + 91 + Each Contributor hereby grants You a world-wide, royalty-free, 92 + non-exclusive license: 93 + 94 + (a) under intellectual property rights (other than patent or trademark) 95 + Licensable by such Contributor to use, reproduce, make available, 96 + modify, display, perform, distribute, and otherwise exploit its 97 + Contributions, either on an unmodified basis, with Modifications, or 98 + as part of a Larger Work; and 99 + 100 + (b) under Patent Claims of such Contributor to make, use, sell, offer 101 + for sale, have made, import, and otherwise transfer either its 102 + Contributions or its Contributor Version. 103 + 104 + 2.2. Effective Date 105 + 106 + The licenses granted in Section 2.1 with respect to any Contribution 107 + become effective for each Contribution on the date the Contributor first 108 + distributes such Contribution. 109 + 110 + 2.3. Limitations on Grant Scope 111 + 112 + The licenses granted in this Section 2 are the only rights granted under 113 + this License. No additional rights or licenses will be implied from the 114 + distribution or licensing of Covered Software under this License. 115 + Notwithstanding Section 2.1(b) above, no patent license is granted by a 116 + Contributor: 117 + 118 + (a) for any code that a Contributor has removed from Covered Software; 119 + or 120 + 121 + (b) for infringements caused by: (i) Your and any other third party's 122 + modifications of Covered Software, or (ii) the combination of its 123 + Contributions with other software (except as part of its Contributor 124 + Version); or 125 + 126 + (c) under Patent Claims infringed by Covered Software in the absence of 127 + its Contributions. 128 + 129 + This License does not grant any rights in the trademarks, service marks, 130 + or logos of any Contributor (except as may be necessary to comply with 131 + the notice requirements in Section 3.4). 132 + 133 + 2.4. Subsequent Licenses 134 + 135 + No Contributor makes additional grants as a result of Your choice to 136 + distribute the Covered Software under a subsequent version of this 137 + License (see Section 10.2) or under the terms of a Secondary License (if 138 + permitted under the terms of Section 3.3). 139 + 140 + 2.5. Representation 141 + 142 + Each Contributor represents that the Contributor believes its 143 + Contributions are its original creation(s) or it has sufficient rights 144 + to grant the rights to its Contributions conveyed by this License. 145 + 146 + 2.6. Fair Use 147 + 148 + This License is not intended to limit any rights You have under 149 + applicable copyright doctrines of fair use, fair dealing, or other 150 + equivalents. 151 + 152 + 2.7. Conditions 153 + 154 + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted 155 + in Section 2.1. 156 + 157 + 3. Responsibilities 158 + ------------------- 159 + 160 + 3.1. Distribution of Source Form 161 + 162 + All distribution of Covered Software in Source Code Form, including any 163 + Modifications that You create or to which You contribute, must be under 164 + the terms of this License. You must inform recipients that the Source 165 + Code Form of the Covered Software is governed by the terms of this 166 + License, and how they can obtain a copy of this License. You may not 167 + attempt to alter or restrict the recipients' rights in the Source Code 168 + Form. 169 + 170 + 3.2. Distribution of Executable Form 171 + 172 + If You distribute Covered Software in Executable Form then: 173 + 174 + (a) such Covered Software must also be made available in Source Code 175 + Form, as described in Section 3.1, and You must inform recipients of 176 + the Executable Form how they can obtain a copy of such Source Code 177 + Form by reasonable means in a timely manner, at a charge no more 178 + than the cost of distribution to the recipient; and 179 + 180 + (b) You may distribute such Executable Form under the terms of this 181 + License, or sublicense it under different terms, provided that the 182 + license for the Executable Form does not attempt to limit or alter 183 + the recipients' rights in the Source Code Form under this License. 184 + 185 + 3.3. Distribution of a Larger Work 186 + 187 + You may create and distribute a Larger Work under terms of Your choice, 188 + provided that You also comply with the requirements of this License for 189 + the Covered Software. If the Larger Work is a combination of Covered 190 + Software with a work governed by one or more Secondary Licenses, and the 191 + Covered Software is not Incompatible With Secondary Licenses, this 192 + License permits You to additionally distribute such Covered Software 193 + under the terms of such Secondary License(s), so that the recipient of 194 + the Larger Work may, at their option, further distribute the Covered 195 + Software under the terms of either this License or such Secondary 196 + License(s). 197 + 198 + 3.4. Notices 199 + 200 + You may not remove or alter the substance of any license notices 201 + (including copyright notices, patent notices, disclaimers of warranty, 202 + or limitations of liability) contained within the Source Code Form of 203 + the Covered Software, except that You may alter any license notices to 204 + the extent required to remedy known factual inaccuracies. 205 + 206 + 3.5. Application of Additional Terms 207 + 208 + You may choose to offer, and to charge a fee for, warranty, support, 209 + indemnity or liability obligations to one or more recipients of Covered 210 + Software. However, You may do so only on Your own behalf, and not on 211 + behalf of any Contributor. You must make it absolutely clear that any 212 + such warranty, support, indemnity, or liability obligation is offered by 213 + You alone, and You hereby agree to indemnify every Contributor for any 214 + liability incurred by such Contributor as a result of warranty, support, 215 + indemnity or liability terms You offer. You may include additional 216 + disclaimers of warranty and limitations of liability specific to any 217 + jurisdiction. 218 + 219 + 4. Inability to Comply Due to Statute or Regulation 220 + --------------------------------------------------- 221 + 222 + If it is impossible for You to comply with any of the terms of this 223 + License with respect to some or all of the Covered Software due to 224 + statute, judicial order, or regulation then You must: (a) comply with 225 + the terms of this License to the maximum extent possible; and (b) 226 + describe the limitations and the code they affect. Such description must 227 + be placed in a text file included with all distributions of the Covered 228 + Software under this License. Except to the extent prohibited by statute 229 + or regulation, such description must be sufficiently detailed for a 230 + recipient of ordinary skill to be able to understand it. 231 + 232 + 5. Termination 233 + -------------- 234 + 235 + 5.1. The rights granted under this License will terminate automatically 236 + if You fail to comply with any of its terms. However, if You become 237 + compliant, then the rights granted under this License from a particular 238 + Contributor are reinstated (a) provisionally, unless and until such 239 + Contributor explicitly and finally terminates Your grants, and (b) on an 240 + ongoing basis, if such Contributor fails to notify You of the 241 + non-compliance by some reasonable means prior to 60 days after You have 242 + come back into compliance. Moreover, Your grants from a particular 243 + Contributor are reinstated on an ongoing basis if such Contributor 244 + notifies You of the non-compliance by some reasonable means, this is the 245 + first time You have received notice of non-compliance with this License 246 + from such Contributor, and You become compliant prior to 30 days after 247 + Your receipt of the notice. 248 + 249 + 5.2. If You initiate litigation against any entity by asserting a patent 250 + infringement claim (excluding declaratory judgment actions, 251 + counter-claims, and cross-claims) alleging that a Contributor Version 252 + directly or indirectly infringes any patent, then the rights granted to 253 + You by any and all Contributors for the Covered Software under Section 254 + 2.1 of this License shall terminate. 255 + 256 + 5.3. In the event of termination under Sections 5.1 or 5.2 above, all 257 + end user license agreements (excluding distributors and resellers) which 258 + have been validly granted by You or Your distributors under this License 259 + prior to termination shall survive termination. 260 + 261 + ************************************************************************ 262 + * * 263 + * 6. Disclaimer of Warranty * 264 + * ------------------------- * 265 + * * 266 + * Covered Software is provided under this License on an "as is" * 267 + * basis, without warranty of any kind, either expressed, implied, or * 268 + * statutory, including, without limitation, warranties that the * 269 + * Covered Software is free of defects, merchantable, fit for a * 270 + * particular purpose or non-infringing. The entire risk as to the * 271 + * quality and performance of the Covered Software is with You. * 272 + * Should any Covered Software prove defective in any respect, You * 273 + * (not any Contributor) assume the cost of any necessary servicing, * 274 + * repair, or correction. This disclaimer of warranty constitutes an * 275 + * essential part of this License. No use of any Covered Software is * 276 + * authorized under this License except under this disclaimer. * 277 + * * 278 + ************************************************************************ 279 + 280 + ************************************************************************ 281 + * * 282 + * 7. Limitation of Liability * 283 + * -------------------------- * 284 + * * 285 + * Under no circumstances and under no legal theory, whether tort * 286 + * (including negligence), contract, or otherwise, shall any * 287 + * Contributor, or anyone who distributes Covered Software as * 288 + * permitted above, be liable to You for any direct, indirect, * 289 + * special, incidental, or consequential damages of any character * 290 + * including, without limitation, damages for lost profits, loss of * 291 + * goodwill, work stoppage, computer failure or malfunction, or any * 292 + * and all other commercial damages or losses, even if such party * 293 + * shall have been informed of the possibility of such damages. This * 294 + * limitation of liability shall not apply to liability for death or * 295 + * personal injury resulting from such party's negligence to the * 296 + * extent applicable law prohibits such limitation. Some * 297 + * jurisdictions do not allow the exclusion or limitation of * 298 + * incidental or consequential damages, so this exclusion and * 299 + * limitation may not apply to You. * 300 + * * 301 + ************************************************************************ 302 + 303 + 8. Litigation 304 + ------------- 305 + 306 + Any litigation relating to this License may be brought only in the 307 + courts of a jurisdiction where the defendant maintains its principal 308 + place of business and such litigation shall be governed by laws of that 309 + jurisdiction, without reference to its conflict-of-law provisions. 310 + Nothing in this Section shall prevent a party's ability to bring 311 + cross-claims or counter-claims. 312 + 313 + 9. Miscellaneous 314 + ---------------- 315 + 316 + This License represents the complete agreement concerning the subject 317 + matter hereof. If any provision of this License is held to be 318 + unenforceable, such provision shall be reformed only to the extent 319 + necessary to make it enforceable. Any law or regulation which provides 320 + that the language of a contract shall be construed against the drafter 321 + shall not be used to construe this License against a Contributor. 322 + 323 + 10. Versions of the License 324 + --------------------------- 325 + 326 + 10.1. New Versions 327 + 328 + Mozilla Foundation is the license steward. Except as provided in Section 329 + 10.3, no one other than the license steward has the right to modify or 330 + publish new versions of this License. Each version will be given a 331 + distinguishing version number. 332 + 333 + 10.2. Effect of New Versions 334 + 335 + You may distribute the Covered Software under the terms of the version 336 + of the License under which You originally received the Covered Software, 337 + or under the terms of any subsequent version published by the license 338 + steward. 339 + 340 + 10.3. Modified Versions 341 + 342 + If you create software not governed by this License, and you want to 343 + create a new license for such software, you may create and use a 344 + modified version of this License if you rename the license and remove 345 + any references to the name of the license steward (except to note that 346 + such modified license differs from this License). 347 + 348 + 10.4. Distributing Source Code Form that is Incompatible With Secondary 349 + Licenses 350 + 351 + If You choose to distribute Source Code Form that is Incompatible With 352 + Secondary Licenses under the terms of this version of the License, the 353 + notice described in Exhibit B of this License must be attached. 354 + 355 + Exhibit A - Source Code Form License Notice 356 + ------------------------------------------- 357 + 358 + This Source Code Form is subject to the terms of the Mozilla Public 359 + License, v. 2.0. If a copy of the MPL was not distributed with this 360 + file, You can obtain one at https://mozilla.org/MPL/2.0/. 361 + 362 + If it is not possible or desirable to put the notice in a particular 363 + file, then You may include the notice in a location (such as a LICENSE 364 + file in a relevant directory) where a recipient would be likely to look 365 + for such a notice. 366 + 367 + You may add additional accurate notices of copyright ownership. 368 + 369 + Exhibit B - "Incompatible With Secondary Licenses" Notice 370 + --------------------------------------------------------- 371 + 372 + This Source Code Form is "Incompatible With Secondary Licenses", as 373 + defined by the Mozilla Public License, v. 2.0.
+58
README.md
··· 1 + # Rust Test Project 2 + 3 + This is a test project for Rust. 4 + 5 + ## Setup 6 + 7 + ```bash 8 + rustup target add wasm32-unknown-unknown 9 + npm install -g corepack@latest 10 + 11 + corepack enable 12 + pnpm install 13 + cargo install wasm-pack 14 + ``` 15 + 16 + ## Commands 17 + 18 + The root pnpm workspace implements several commands to orchestrate the project. It interacts with both the TypeScript and Rust projects. 19 + 20 + ### pnpm playground 21 + 22 + ```bash 23 + pnpm playground 24 + ``` 25 + 26 + ### pnpm test 27 + 28 + ```bash 29 + pnpm test 30 + ``` 31 + 32 + ### pnpm format 33 + 34 + ```bash 35 + pnpm format 36 + ``` 37 + 38 + ### pnpm lint 39 + 40 + ```bash 41 + pnpm lint 42 + ``` 43 + 44 + ### pnpm build 45 + 46 + ```bash 47 + pnpm build 48 + ``` 49 + 50 + ### pnpm build:prod 51 + 52 + ```bash 53 + pnpm build:prod 54 + ``` 55 + 56 + ## License 57 + 58 + [MPL-2.0](./LICENSE)
+2
com-gm112-rust-testlibrary/.gitignore
··· 1 + node_modules 2 + dist
+20
com-gm112-rust-testlibrary/package.json
··· 1 + { 2 + "name": "com-gm112-rust-testlibrary", 3 + "private": false, 4 + "type": "module", 5 + "scripts": { 6 + "prepare": "([ -d ./pkg ] || pnpm run build) || true", 7 + "build": "wasm-pack build --target bundler", 8 + "build:prod": "wasm-pack build --target bundler --release", 9 + "format": "cargo fmt && cargo clippy --fix", 10 + "lint": "cargo fmt --check && cargo clippy" 11 + }, 12 + "files": [ 13 + "pkg/" 14 + ], 15 + "types": "pkg/com_gm112_rust_testlibrary.d.ts", 16 + "main": "pkg/com_gm112_rust_testlibrary.js", 17 + "sideEffects": [ 18 + "pkg/" 19 + ] 20 + }
+9
com-gm112-rust-testlibrary/playground/app/__tests__/main.browser.test.ts
··· 1 + /// <reference types="@vitest/browser/providers/playwright" /> 2 + 3 + import { expect, test } from 'vitest' 4 + import { add } from 'com-gm112-rust-testlibrary' 5 + 6 + test('adds 1 + 2 to equal 3', async () => { 7 + const result = add(1, 2) 8 + expect(result).toBe(3) 9 + })
+7
com-gm112-rust-testlibrary/playground/app/__tests__/main.node.test.ts
··· 1 + import { expect, test } from 'vitest' 2 + import { add } from 'com-gm112-rust-testlibrary' 3 + 4 + test('adds 1 + 2 to equal 3', async () => { 5 + const result = add(1, 2) 6 + expect(result).toBe(3) 7 + })
+2 -4
com-gm112-rust-testlibrary/playground/app/index.html
··· 4 4 <meta charset="utf-8" /> 5 5 <title>hello-wasm example</title> 6 6 <script src="./main.js" type="module"></script> 7 - 8 7 </head> 9 - <body> 10 - </body> 11 - </html> 8 + <body></body> 9 + </html>
+2 -4
com-gm112-rust-testlibrary/playground/app/main.js
··· 1 - import init, { add } from 'com-gm112-rust-testlibrary' 2 - 3 - await init() 1 + import { add } from 'com-gm112-rust-testlibrary' 4 2 const result = add(2, 2) 5 3 6 4 console.log('Hello, World!') ··· 9 7 document.body.innerHTML = ` 10 8 <h1>Hello, World!</h1> 11 9 <p>2 + 2 = ${result}</p> 12 - ` 10 + `
-10
com-gm112-rust-testlibrary/playground/app/main.test.ts
··· 1 - /// <reference types="@vitest/browser/providers/playwright" /> 2 - 3 - import { expect, test } from 'vitest' 4 - import init, { add } from 'com-gm112-rust-testlibrary' 5 - 6 - test('adds 1 + 2 to equal 3', async () => { 7 - await init() 8 - const result = add(1, 2) 9 - expect(result).toBe(3) 10 - })
-1081
com-gm112-rust-testlibrary/playground/package-lock.json
··· 1 - { 2 - "name": "playground", 3 - "lockfileVersion": 3, 4 - "requires": true, 5 - "packages": { 6 - "": { 7 - "devDependencies": { 8 - "com-gm112-rust-testlibrary": "file:../pkg", 9 - "typescript": "^5.9.3", 10 - "vite": "^7.1.7" 11 - } 12 - }, 13 - "../pkg": { 14 - "name": "com-gm112-rust-testlibrary", 15 - "version": "0.1.0", 16 - "dev": true 17 - }, 18 - "node_modules/@esbuild/aix-ppc64": { 19 - "version": "0.25.10", 20 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", 21 - "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==", 22 - "cpu": [ 23 - "ppc64" 24 - ], 25 - "dev": true, 26 - "license": "MIT", 27 - "optional": true, 28 - "os": [ 29 - "aix" 30 - ], 31 - "engines": { 32 - "node": ">=18" 33 - } 34 - }, 35 - "node_modules/@esbuild/android-arm": { 36 - "version": "0.25.10", 37 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz", 38 - "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==", 39 - "cpu": [ 40 - "arm" 41 - ], 42 - "dev": true, 43 - "license": "MIT", 44 - "optional": true, 45 - "os": [ 46 - "android" 47 - ], 48 - "engines": { 49 - "node": ">=18" 50 - } 51 - }, 52 - "node_modules/@esbuild/android-arm64": { 53 - "version": "0.25.10", 54 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz", 55 - "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==", 56 - "cpu": [ 57 - "arm64" 58 - ], 59 - "dev": true, 60 - "license": "MIT", 61 - "optional": true, 62 - "os": [ 63 - "android" 64 - ], 65 - "engines": { 66 - "node": ">=18" 67 - } 68 - }, 69 - "node_modules/@esbuild/android-x64": { 70 - "version": "0.25.10", 71 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz", 72 - "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==", 73 - "cpu": [ 74 - "x64" 75 - ], 76 - "dev": true, 77 - "license": "MIT", 78 - "optional": true, 79 - "os": [ 80 - "android" 81 - ], 82 - "engines": { 83 - "node": ">=18" 84 - } 85 - }, 86 - "node_modules/@esbuild/darwin-arm64": { 87 - "version": "0.25.10", 88 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", 89 - "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", 90 - "cpu": [ 91 - "arm64" 92 - ], 93 - "dev": true, 94 - "license": "MIT", 95 - "optional": true, 96 - "os": [ 97 - "darwin" 98 - ], 99 - "engines": { 100 - "node": ">=18" 101 - } 102 - }, 103 - "node_modules/@esbuild/darwin-x64": { 104 - "version": "0.25.10", 105 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz", 106 - "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==", 107 - "cpu": [ 108 - "x64" 109 - ], 110 - "dev": true, 111 - "license": "MIT", 112 - "optional": true, 113 - "os": [ 114 - "darwin" 115 - ], 116 - "engines": { 117 - "node": ">=18" 118 - } 119 - }, 120 - "node_modules/@esbuild/freebsd-arm64": { 121 - "version": "0.25.10", 122 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz", 123 - "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==", 124 - "cpu": [ 125 - "arm64" 126 - ], 127 - "dev": true, 128 - "license": "MIT", 129 - "optional": true, 130 - "os": [ 131 - "freebsd" 132 - ], 133 - "engines": { 134 - "node": ">=18" 135 - } 136 - }, 137 - "node_modules/@esbuild/freebsd-x64": { 138 - "version": "0.25.10", 139 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz", 140 - "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==", 141 - "cpu": [ 142 - "x64" 143 - ], 144 - "dev": true, 145 - "license": "MIT", 146 - "optional": true, 147 - "os": [ 148 - "freebsd" 149 - ], 150 - "engines": { 151 - "node": ">=18" 152 - } 153 - }, 154 - "node_modules/@esbuild/linux-arm": { 155 - "version": "0.25.10", 156 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz", 157 - "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==", 158 - "cpu": [ 159 - "arm" 160 - ], 161 - "dev": true, 162 - "license": "MIT", 163 - "optional": true, 164 - "os": [ 165 - "linux" 166 - ], 167 - "engines": { 168 - "node": ">=18" 169 - } 170 - }, 171 - "node_modules/@esbuild/linux-arm64": { 172 - "version": "0.25.10", 173 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz", 174 - "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==", 175 - "cpu": [ 176 - "arm64" 177 - ], 178 - "dev": true, 179 - "license": "MIT", 180 - "optional": true, 181 - "os": [ 182 - "linux" 183 - ], 184 - "engines": { 185 - "node": ">=18" 186 - } 187 - }, 188 - "node_modules/@esbuild/linux-ia32": { 189 - "version": "0.25.10", 190 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz", 191 - "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==", 192 - "cpu": [ 193 - "ia32" 194 - ], 195 - "dev": true, 196 - "license": "MIT", 197 - "optional": true, 198 - "os": [ 199 - "linux" 200 - ], 201 - "engines": { 202 - "node": ">=18" 203 - } 204 - }, 205 - "node_modules/@esbuild/linux-loong64": { 206 - "version": "0.25.10", 207 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz", 208 - "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==", 209 - "cpu": [ 210 - "loong64" 211 - ], 212 - "dev": true, 213 - "license": "MIT", 214 - "optional": true, 215 - "os": [ 216 - "linux" 217 - ], 218 - "engines": { 219 - "node": ">=18" 220 - } 221 - }, 222 - "node_modules/@esbuild/linux-mips64el": { 223 - "version": "0.25.10", 224 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz", 225 - "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==", 226 - "cpu": [ 227 - "mips64el" 228 - ], 229 - "dev": true, 230 - "license": "MIT", 231 - "optional": true, 232 - "os": [ 233 - "linux" 234 - ], 235 - "engines": { 236 - "node": ">=18" 237 - } 238 - }, 239 - "node_modules/@esbuild/linux-ppc64": { 240 - "version": "0.25.10", 241 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz", 242 - "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==", 243 - "cpu": [ 244 - "ppc64" 245 - ], 246 - "dev": true, 247 - "license": "MIT", 248 - "optional": true, 249 - "os": [ 250 - "linux" 251 - ], 252 - "engines": { 253 - "node": ">=18" 254 - } 255 - }, 256 - "node_modules/@esbuild/linux-riscv64": { 257 - "version": "0.25.10", 258 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz", 259 - "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==", 260 - "cpu": [ 261 - "riscv64" 262 - ], 263 - "dev": true, 264 - "license": "MIT", 265 - "optional": true, 266 - "os": [ 267 - "linux" 268 - ], 269 - "engines": { 270 - "node": ">=18" 271 - } 272 - }, 273 - "node_modules/@esbuild/linux-s390x": { 274 - "version": "0.25.10", 275 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz", 276 - "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==", 277 - "cpu": [ 278 - "s390x" 279 - ], 280 - "dev": true, 281 - "license": "MIT", 282 - "optional": true, 283 - "os": [ 284 - "linux" 285 - ], 286 - "engines": { 287 - "node": ">=18" 288 - } 289 - }, 290 - "node_modules/@esbuild/linux-x64": { 291 - "version": "0.25.10", 292 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz", 293 - "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==", 294 - "cpu": [ 295 - "x64" 296 - ], 297 - "dev": true, 298 - "license": "MIT", 299 - "optional": true, 300 - "os": [ 301 - "linux" 302 - ], 303 - "engines": { 304 - "node": ">=18" 305 - } 306 - }, 307 - "node_modules/@esbuild/netbsd-arm64": { 308 - "version": "0.25.10", 309 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz", 310 - "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==", 311 - "cpu": [ 312 - "arm64" 313 - ], 314 - "dev": true, 315 - "license": "MIT", 316 - "optional": true, 317 - "os": [ 318 - "netbsd" 319 - ], 320 - "engines": { 321 - "node": ">=18" 322 - } 323 - }, 324 - "node_modules/@esbuild/netbsd-x64": { 325 - "version": "0.25.10", 326 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz", 327 - "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==", 328 - "cpu": [ 329 - "x64" 330 - ], 331 - "dev": true, 332 - "license": "MIT", 333 - "optional": true, 334 - "os": [ 335 - "netbsd" 336 - ], 337 - "engines": { 338 - "node": ">=18" 339 - } 340 - }, 341 - "node_modules/@esbuild/openbsd-arm64": { 342 - "version": "0.25.10", 343 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz", 344 - "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==", 345 - "cpu": [ 346 - "arm64" 347 - ], 348 - "dev": true, 349 - "license": "MIT", 350 - "optional": true, 351 - "os": [ 352 - "openbsd" 353 - ], 354 - "engines": { 355 - "node": ">=18" 356 - } 357 - }, 358 - "node_modules/@esbuild/openbsd-x64": { 359 - "version": "0.25.10", 360 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz", 361 - "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==", 362 - "cpu": [ 363 - "x64" 364 - ], 365 - "dev": true, 366 - "license": "MIT", 367 - "optional": true, 368 - "os": [ 369 - "openbsd" 370 - ], 371 - "engines": { 372 - "node": ">=18" 373 - } 374 - }, 375 - "node_modules/@esbuild/openharmony-arm64": { 376 - "version": "0.25.10", 377 - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz", 378 - "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==", 379 - "cpu": [ 380 - "arm64" 381 - ], 382 - "dev": true, 383 - "license": "MIT", 384 - "optional": true, 385 - "os": [ 386 - "openharmony" 387 - ], 388 - "engines": { 389 - "node": ">=18" 390 - } 391 - }, 392 - "node_modules/@esbuild/sunos-x64": { 393 - "version": "0.25.10", 394 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz", 395 - "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==", 396 - "cpu": [ 397 - "x64" 398 - ], 399 - "dev": true, 400 - "license": "MIT", 401 - "optional": true, 402 - "os": [ 403 - "sunos" 404 - ], 405 - "engines": { 406 - "node": ">=18" 407 - } 408 - }, 409 - "node_modules/@esbuild/win32-arm64": { 410 - "version": "0.25.10", 411 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz", 412 - "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==", 413 - "cpu": [ 414 - "arm64" 415 - ], 416 - "dev": true, 417 - "license": "MIT", 418 - "optional": true, 419 - "os": [ 420 - "win32" 421 - ], 422 - "engines": { 423 - "node": ">=18" 424 - } 425 - }, 426 - "node_modules/@esbuild/win32-ia32": { 427 - "version": "0.25.10", 428 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz", 429 - "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==", 430 - "cpu": [ 431 - "ia32" 432 - ], 433 - "dev": true, 434 - "license": "MIT", 435 - "optional": true, 436 - "os": [ 437 - "win32" 438 - ], 439 - "engines": { 440 - "node": ">=18" 441 - } 442 - }, 443 - "node_modules/@esbuild/win32-x64": { 444 - "version": "0.25.10", 445 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz", 446 - "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==", 447 - "cpu": [ 448 - "x64" 449 - ], 450 - "dev": true, 451 - "license": "MIT", 452 - "optional": true, 453 - "os": [ 454 - "win32" 455 - ], 456 - "engines": { 457 - "node": ">=18" 458 - } 459 - }, 460 - "node_modules/@rollup/rollup-android-arm-eabi": { 461 - "version": "4.52.3", 462 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.3.tgz", 463 - "integrity": "sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==", 464 - "cpu": [ 465 - "arm" 466 - ], 467 - "dev": true, 468 - "license": "MIT", 469 - "optional": true, 470 - "os": [ 471 - "android" 472 - ] 473 - }, 474 - "node_modules/@rollup/rollup-android-arm64": { 475 - "version": "4.52.3", 476 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.3.tgz", 477 - "integrity": "sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==", 478 - "cpu": [ 479 - "arm64" 480 - ], 481 - "dev": true, 482 - "license": "MIT", 483 - "optional": true, 484 - "os": [ 485 - "android" 486 - ] 487 - }, 488 - "node_modules/@rollup/rollup-darwin-arm64": { 489 - "version": "4.52.3", 490 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.3.tgz", 491 - "integrity": "sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==", 492 - "cpu": [ 493 - "arm64" 494 - ], 495 - "dev": true, 496 - "license": "MIT", 497 - "optional": true, 498 - "os": [ 499 - "darwin" 500 - ] 501 - }, 502 - "node_modules/@rollup/rollup-darwin-x64": { 503 - "version": "4.52.3", 504 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.3.tgz", 505 - "integrity": "sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==", 506 - "cpu": [ 507 - "x64" 508 - ], 509 - "dev": true, 510 - "license": "MIT", 511 - "optional": true, 512 - "os": [ 513 - "darwin" 514 - ] 515 - }, 516 - "node_modules/@rollup/rollup-freebsd-arm64": { 517 - "version": "4.52.3", 518 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.3.tgz", 519 - "integrity": "sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==", 520 - "cpu": [ 521 - "arm64" 522 - ], 523 - "dev": true, 524 - "license": "MIT", 525 - "optional": true, 526 - "os": [ 527 - "freebsd" 528 - ] 529 - }, 530 - "node_modules/@rollup/rollup-freebsd-x64": { 531 - "version": "4.52.3", 532 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.3.tgz", 533 - "integrity": "sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==", 534 - "cpu": [ 535 - "x64" 536 - ], 537 - "dev": true, 538 - "license": "MIT", 539 - "optional": true, 540 - "os": [ 541 - "freebsd" 542 - ] 543 - }, 544 - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 545 - "version": "4.52.3", 546 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.3.tgz", 547 - "integrity": "sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==", 548 - "cpu": [ 549 - "arm" 550 - ], 551 - "dev": true, 552 - "license": "MIT", 553 - "optional": true, 554 - "os": [ 555 - "linux" 556 - ] 557 - }, 558 - "node_modules/@rollup/rollup-linux-arm-musleabihf": { 559 - "version": "4.52.3", 560 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.3.tgz", 561 - "integrity": "sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==", 562 - "cpu": [ 563 - "arm" 564 - ], 565 - "dev": true, 566 - "license": "MIT", 567 - "optional": true, 568 - "os": [ 569 - "linux" 570 - ] 571 - }, 572 - "node_modules/@rollup/rollup-linux-arm64-gnu": { 573 - "version": "4.52.3", 574 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.3.tgz", 575 - "integrity": "sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==", 576 - "cpu": [ 577 - "arm64" 578 - ], 579 - "dev": true, 580 - "license": "MIT", 581 - "optional": true, 582 - "os": [ 583 - "linux" 584 - ] 585 - }, 586 - "node_modules/@rollup/rollup-linux-arm64-musl": { 587 - "version": "4.52.3", 588 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.3.tgz", 589 - "integrity": "sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==", 590 - "cpu": [ 591 - "arm64" 592 - ], 593 - "dev": true, 594 - "license": "MIT", 595 - "optional": true, 596 - "os": [ 597 - "linux" 598 - ] 599 - }, 600 - "node_modules/@rollup/rollup-linux-loong64-gnu": { 601 - "version": "4.52.3", 602 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.3.tgz", 603 - "integrity": "sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==", 604 - "cpu": [ 605 - "loong64" 606 - ], 607 - "dev": true, 608 - "license": "MIT", 609 - "optional": true, 610 - "os": [ 611 - "linux" 612 - ] 613 - }, 614 - "node_modules/@rollup/rollup-linux-ppc64-gnu": { 615 - "version": "4.52.3", 616 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.3.tgz", 617 - "integrity": "sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==", 618 - "cpu": [ 619 - "ppc64" 620 - ], 621 - "dev": true, 622 - "license": "MIT", 623 - "optional": true, 624 - "os": [ 625 - "linux" 626 - ] 627 - }, 628 - "node_modules/@rollup/rollup-linux-riscv64-gnu": { 629 - "version": "4.52.3", 630 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.3.tgz", 631 - "integrity": "sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==", 632 - "cpu": [ 633 - "riscv64" 634 - ], 635 - "dev": true, 636 - "license": "MIT", 637 - "optional": true, 638 - "os": [ 639 - "linux" 640 - ] 641 - }, 642 - "node_modules/@rollup/rollup-linux-riscv64-musl": { 643 - "version": "4.52.3", 644 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.3.tgz", 645 - "integrity": "sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==", 646 - "cpu": [ 647 - "riscv64" 648 - ], 649 - "dev": true, 650 - "license": "MIT", 651 - "optional": true, 652 - "os": [ 653 - "linux" 654 - ] 655 - }, 656 - "node_modules/@rollup/rollup-linux-s390x-gnu": { 657 - "version": "4.52.3", 658 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.3.tgz", 659 - "integrity": "sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==", 660 - "cpu": [ 661 - "s390x" 662 - ], 663 - "dev": true, 664 - "license": "MIT", 665 - "optional": true, 666 - "os": [ 667 - "linux" 668 - ] 669 - }, 670 - "node_modules/@rollup/rollup-linux-x64-gnu": { 671 - "version": "4.52.3", 672 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.3.tgz", 673 - "integrity": "sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==", 674 - "cpu": [ 675 - "x64" 676 - ], 677 - "dev": true, 678 - "license": "MIT", 679 - "optional": true, 680 - "os": [ 681 - "linux" 682 - ] 683 - }, 684 - "node_modules/@rollup/rollup-linux-x64-musl": { 685 - "version": "4.52.3", 686 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.3.tgz", 687 - "integrity": "sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==", 688 - "cpu": [ 689 - "x64" 690 - ], 691 - "dev": true, 692 - "license": "MIT", 693 - "optional": true, 694 - "os": [ 695 - "linux" 696 - ] 697 - }, 698 - "node_modules/@rollup/rollup-openharmony-arm64": { 699 - "version": "4.52.3", 700 - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.3.tgz", 701 - "integrity": "sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==", 702 - "cpu": [ 703 - "arm64" 704 - ], 705 - "dev": true, 706 - "license": "MIT", 707 - "optional": true, 708 - "os": [ 709 - "openharmony" 710 - ] 711 - }, 712 - "node_modules/@rollup/rollup-win32-arm64-msvc": { 713 - "version": "4.52.3", 714 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.3.tgz", 715 - "integrity": "sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==", 716 - "cpu": [ 717 - "arm64" 718 - ], 719 - "dev": true, 720 - "license": "MIT", 721 - "optional": true, 722 - "os": [ 723 - "win32" 724 - ] 725 - }, 726 - "node_modules/@rollup/rollup-win32-ia32-msvc": { 727 - "version": "4.52.3", 728 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.3.tgz", 729 - "integrity": "sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==", 730 - "cpu": [ 731 - "ia32" 732 - ], 733 - "dev": true, 734 - "license": "MIT", 735 - "optional": true, 736 - "os": [ 737 - "win32" 738 - ] 739 - }, 740 - "node_modules/@rollup/rollup-win32-x64-gnu": { 741 - "version": "4.52.3", 742 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.3.tgz", 743 - "integrity": "sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==", 744 - "cpu": [ 745 - "x64" 746 - ], 747 - "dev": true, 748 - "license": "MIT", 749 - "optional": true, 750 - "os": [ 751 - "win32" 752 - ] 753 - }, 754 - "node_modules/@rollup/rollup-win32-x64-msvc": { 755 - "version": "4.52.3", 756 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.3.tgz", 757 - "integrity": "sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==", 758 - "cpu": [ 759 - "x64" 760 - ], 761 - "dev": true, 762 - "license": "MIT", 763 - "optional": true, 764 - "os": [ 765 - "win32" 766 - ] 767 - }, 768 - "node_modules/@types/estree": { 769 - "version": "1.0.8", 770 - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", 771 - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", 772 - "dev": true, 773 - "license": "MIT" 774 - }, 775 - "node_modules/com-gm112-rust-testlibrary": { 776 - "resolved": "../pkg", 777 - "link": true 778 - }, 779 - "node_modules/esbuild": { 780 - "version": "0.25.10", 781 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", 782 - "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", 783 - "dev": true, 784 - "hasInstallScript": true, 785 - "license": "MIT", 786 - "bin": { 787 - "esbuild": "bin/esbuild" 788 - }, 789 - "engines": { 790 - "node": ">=18" 791 - }, 792 - "optionalDependencies": { 793 - "@esbuild/aix-ppc64": "0.25.10", 794 - "@esbuild/android-arm": "0.25.10", 795 - "@esbuild/android-arm64": "0.25.10", 796 - "@esbuild/android-x64": "0.25.10", 797 - "@esbuild/darwin-arm64": "0.25.10", 798 - "@esbuild/darwin-x64": "0.25.10", 799 - "@esbuild/freebsd-arm64": "0.25.10", 800 - "@esbuild/freebsd-x64": "0.25.10", 801 - "@esbuild/linux-arm": "0.25.10", 802 - "@esbuild/linux-arm64": "0.25.10", 803 - "@esbuild/linux-ia32": "0.25.10", 804 - "@esbuild/linux-loong64": "0.25.10", 805 - "@esbuild/linux-mips64el": "0.25.10", 806 - "@esbuild/linux-ppc64": "0.25.10", 807 - "@esbuild/linux-riscv64": "0.25.10", 808 - "@esbuild/linux-s390x": "0.25.10", 809 - "@esbuild/linux-x64": "0.25.10", 810 - "@esbuild/netbsd-arm64": "0.25.10", 811 - "@esbuild/netbsd-x64": "0.25.10", 812 - "@esbuild/openbsd-arm64": "0.25.10", 813 - "@esbuild/openbsd-x64": "0.25.10", 814 - "@esbuild/openharmony-arm64": "0.25.10", 815 - "@esbuild/sunos-x64": "0.25.10", 816 - "@esbuild/win32-arm64": "0.25.10", 817 - "@esbuild/win32-ia32": "0.25.10", 818 - "@esbuild/win32-x64": "0.25.10" 819 - } 820 - }, 821 - "node_modules/fdir": { 822 - "version": "6.5.0", 823 - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 824 - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 825 - "dev": true, 826 - "license": "MIT", 827 - "engines": { 828 - "node": ">=12.0.0" 829 - }, 830 - "peerDependencies": { 831 - "picomatch": "^3 || ^4" 832 - }, 833 - "peerDependenciesMeta": { 834 - "picomatch": { 835 - "optional": true 836 - } 837 - } 838 - }, 839 - "node_modules/fsevents": { 840 - "version": "2.3.3", 841 - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 842 - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 843 - "dev": true, 844 - "hasInstallScript": true, 845 - "license": "MIT", 846 - "optional": true, 847 - "os": [ 848 - "darwin" 849 - ], 850 - "engines": { 851 - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 852 - } 853 - }, 854 - "node_modules/nanoid": { 855 - "version": "3.3.11", 856 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 857 - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 858 - "dev": true, 859 - "funding": [ 860 - { 861 - "type": "github", 862 - "url": "https://github.com/sponsors/ai" 863 - } 864 - ], 865 - "license": "MIT", 866 - "bin": { 867 - "nanoid": "bin/nanoid.cjs" 868 - }, 869 - "engines": { 870 - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 871 - } 872 - }, 873 - "node_modules/picocolors": { 874 - "version": "1.1.1", 875 - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 876 - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 877 - "dev": true, 878 - "license": "ISC" 879 - }, 880 - "node_modules/picomatch": { 881 - "version": "4.0.3", 882 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 883 - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 884 - "dev": true, 885 - "license": "MIT", 886 - "engines": { 887 - "node": ">=12" 888 - }, 889 - "funding": { 890 - "url": "https://github.com/sponsors/jonschlinkert" 891 - } 892 - }, 893 - "node_modules/postcss": { 894 - "version": "8.5.6", 895 - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", 896 - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", 897 - "dev": true, 898 - "funding": [ 899 - { 900 - "type": "opencollective", 901 - "url": "https://opencollective.com/postcss/" 902 - }, 903 - { 904 - "type": "tidelift", 905 - "url": "https://tidelift.com/funding/github/npm/postcss" 906 - }, 907 - { 908 - "type": "github", 909 - "url": "https://github.com/sponsors/ai" 910 - } 911 - ], 912 - "license": "MIT", 913 - "dependencies": { 914 - "nanoid": "^3.3.11", 915 - "picocolors": "^1.1.1", 916 - "source-map-js": "^1.2.1" 917 - }, 918 - "engines": { 919 - "node": "^10 || ^12 || >=14" 920 - } 921 - }, 922 - "node_modules/rollup": { 923 - "version": "4.52.3", 924 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.3.tgz", 925 - "integrity": "sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==", 926 - "dev": true, 927 - "license": "MIT", 928 - "dependencies": { 929 - "@types/estree": "1.0.8" 930 - }, 931 - "bin": { 932 - "rollup": "dist/bin/rollup" 933 - }, 934 - "engines": { 935 - "node": ">=18.0.0", 936 - "npm": ">=8.0.0" 937 - }, 938 - "optionalDependencies": { 939 - "@rollup/rollup-android-arm-eabi": "4.52.3", 940 - "@rollup/rollup-android-arm64": "4.52.3", 941 - "@rollup/rollup-darwin-arm64": "4.52.3", 942 - "@rollup/rollup-darwin-x64": "4.52.3", 943 - "@rollup/rollup-freebsd-arm64": "4.52.3", 944 - "@rollup/rollup-freebsd-x64": "4.52.3", 945 - "@rollup/rollup-linux-arm-gnueabihf": "4.52.3", 946 - "@rollup/rollup-linux-arm-musleabihf": "4.52.3", 947 - "@rollup/rollup-linux-arm64-gnu": "4.52.3", 948 - "@rollup/rollup-linux-arm64-musl": "4.52.3", 949 - "@rollup/rollup-linux-loong64-gnu": "4.52.3", 950 - "@rollup/rollup-linux-ppc64-gnu": "4.52.3", 951 - "@rollup/rollup-linux-riscv64-gnu": "4.52.3", 952 - "@rollup/rollup-linux-riscv64-musl": "4.52.3", 953 - "@rollup/rollup-linux-s390x-gnu": "4.52.3", 954 - "@rollup/rollup-linux-x64-gnu": "4.52.3", 955 - "@rollup/rollup-linux-x64-musl": "4.52.3", 956 - "@rollup/rollup-openharmony-arm64": "4.52.3", 957 - "@rollup/rollup-win32-arm64-msvc": "4.52.3", 958 - "@rollup/rollup-win32-ia32-msvc": "4.52.3", 959 - "@rollup/rollup-win32-x64-gnu": "4.52.3", 960 - "@rollup/rollup-win32-x64-msvc": "4.52.3", 961 - "fsevents": "~2.3.2" 962 - } 963 - }, 964 - "node_modules/source-map-js": { 965 - "version": "1.2.1", 966 - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 967 - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 968 - "dev": true, 969 - "license": "BSD-3-Clause", 970 - "engines": { 971 - "node": ">=0.10.0" 972 - } 973 - }, 974 - "node_modules/tinyglobby": { 975 - "version": "0.2.15", 976 - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", 977 - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", 978 - "dev": true, 979 - "license": "MIT", 980 - "dependencies": { 981 - "fdir": "^6.5.0", 982 - "picomatch": "^4.0.3" 983 - }, 984 - "engines": { 985 - "node": ">=12.0.0" 986 - }, 987 - "funding": { 988 - "url": "https://github.com/sponsors/SuperchupuDev" 989 - } 990 - }, 991 - "node_modules/typescript": { 992 - "version": "5.9.3", 993 - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", 994 - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", 995 - "dev": true, 996 - "license": "Apache-2.0", 997 - "bin": { 998 - "tsc": "bin/tsc", 999 - "tsserver": "bin/tsserver" 1000 - }, 1001 - "engines": { 1002 - "node": ">=14.17" 1003 - } 1004 - }, 1005 - "node_modules/vite": { 1006 - "version": "7.1.7", 1007 - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.7.tgz", 1008 - "integrity": "sha512-VbA8ScMvAISJNJVbRDTJdCwqQoAareR/wutevKanhR2/1EkoXVZVkkORaYm/tNVCjP/UDTKtcw3bAkwOUdedmA==", 1009 - "dev": true, 1010 - "license": "MIT", 1011 - "dependencies": { 1012 - "esbuild": "^0.25.0", 1013 - "fdir": "^6.5.0", 1014 - "picomatch": "^4.0.3", 1015 - "postcss": "^8.5.6", 1016 - "rollup": "^4.43.0", 1017 - "tinyglobby": "^0.2.15" 1018 - }, 1019 - "bin": { 1020 - "vite": "bin/vite.js" 1021 - }, 1022 - "engines": { 1023 - "node": "^20.19.0 || >=22.12.0" 1024 - }, 1025 - "funding": { 1026 - "url": "https://github.com/vitejs/vite?sponsor=1" 1027 - }, 1028 - "optionalDependencies": { 1029 - "fsevents": "~2.3.3" 1030 - }, 1031 - "peerDependencies": { 1032 - "@types/node": "^20.19.0 || >=22.12.0", 1033 - "jiti": ">=1.21.0", 1034 - "less": "^4.0.0", 1035 - "lightningcss": "^1.21.0", 1036 - "sass": "^1.70.0", 1037 - "sass-embedded": "^1.70.0", 1038 - "stylus": ">=0.54.8", 1039 - "sugarss": "^5.0.0", 1040 - "terser": "^5.16.0", 1041 - "tsx": "^4.8.1", 1042 - "yaml": "^2.4.2" 1043 - }, 1044 - "peerDependenciesMeta": { 1045 - "@types/node": { 1046 - "optional": true 1047 - }, 1048 - "jiti": { 1049 - "optional": true 1050 - }, 1051 - "less": { 1052 - "optional": true 1053 - }, 1054 - "lightningcss": { 1055 - "optional": true 1056 - }, 1057 - "sass": { 1058 - "optional": true 1059 - }, 1060 - "sass-embedded": { 1061 - "optional": true 1062 - }, 1063 - "stylus": { 1064 - "optional": true 1065 - }, 1066 - "sugarss": { 1067 - "optional": true 1068 - }, 1069 - "terser": { 1070 - "optional": true 1071 - }, 1072 - "tsx": { 1073 - "optional": true 1074 - }, 1075 - "yaml": { 1076 - "optional": true 1077 - } 1078 - } 1079 - } 1080 - } 1081 - }
+22 -22
com-gm112-rust-testlibrary/playground/package.json
··· 1 1 { 2 - "private": true, 3 - "type": "module", 4 - "main": "app/main.js", 5 - "scripts": { 6 - "prepare": "pnpm run build", 7 - "build": "cd ../ && wasm-pack build --target web", 8 - "dev": "pnpm run build && npx vite serve app", 9 - "test": "vitest run", 10 - "test:watch": "vitest --watch" 11 - }, 12 - "devDependencies": { 13 - "@types/node": "catalog:", 14 - "com-gm112-rust-testlibrary": "workspace:*", 15 - "typescript": "catalog:", 16 - "vite": "catalog:", 17 - "vite-plugin-wasm": "catalog:", 18 - "vitest": "catalog:" 19 - }, 20 - "dependencies": { 21 - "@vitest/browser": "catalog:", 22 - "playwright": "catalog:" 23 - } 2 + "name": "playground", 3 + "private": true, 4 + "type": "module", 5 + "main": "app/main.js", 6 + "scripts": { 7 + "dev": "vite dev", 8 + "test": "pnpm run test:browser run && pnpm run test:node run", 9 + "test:browser": "vitest --config vitest.browser.config.ts", 10 + "test:node": "vitest --config vitest.config.ts" 11 + }, 12 + "devDependencies": { 13 + "@types/node": "catalog:", 14 + "com-gm112-rust-testlibrary": "workspace:*", 15 + "typescript": "catalog:", 16 + "vite": "catalog:", 17 + "vite-plugin-wasm": "catalog:", 18 + "vitest": "catalog:" 19 + }, 20 + "dependencies": { 21 + "@vitest/browser": "catalog:", 22 + "playwright": "catalog:" 23 + } 24 24 }
+1 -1
com-gm112-rust-testlibrary/playground/tsconfig.base.json
··· 3 3 "compilerOptions": { 4 4 // File Layout 5 5 // "rootDir": "./src", 6 - // "outDir": "./dist", 6 + // "outDir": "./dist", 7 7 "outDir": "./dist", 8 8 9 9 // Environment Settings
+1 -1
com-gm112-rust-testlibrary/playground/tsconfig.test.json
··· 3 3 "include": ["app"], 4 4 "exclude": ["node_modules"], 5 5 "compilerOptions": { 6 - "noEmit": true, 6 + "noEmit": true 7 7 } 8 8 }
+3 -5
com-gm112-rust-testlibrary/playground/vite.config.ts
··· 1 1 import { defineConfig } from 'vite' 2 2 import wasm from 'vite-plugin-wasm' 3 3 4 - 5 4 export default defineConfig({ 6 - plugins: [ 7 - wasm() 8 - ], 9 - }) 5 + plugins: [wasm()], 6 + root: 'app', 7 + })
+16
com-gm112-rust-testlibrary/playground/vitest.browser.config.ts
··· 1 + import { defineConfig } from 'vitest/config' 2 + import wasm from 'vite-plugin-wasm' 3 + export default defineConfig({ 4 + plugins: [wasm()], 5 + test: { 6 + include: ['./app/**/*.browser.test.ts'], 7 + exclude: ['./app/**/*.node.test.ts'], 8 + browser: { 9 + provider: 'playwright', // or 'webdriverio' 10 + enabled: true, 11 + headless: true, 12 + // at least one instance is required 13 + instances: [{ browser: 'chromium' }], 14 + }, 15 + }, 16 + })
+8 -11
com-gm112-rust-testlibrary/playground/vitest.config.ts
··· 1 1 import { defineConfig } from 'vitest/config' 2 + import wasm from 'vite-plugin-wasm' 2 3 export default defineConfig({ 4 + plugins: [wasm()], 3 5 test: { 4 - browser: { 5 - provider: 'playwright', // or 'webdriverio' 6 - enabled: true, 7 - headless: true, 8 - // at least one instance is required 9 - instances: [ 10 - { browser: 'chromium' }, 11 - ], 12 - }, 13 - } 14 - }) 6 + include: ['./app/**/*.node.test.ts'], 7 + exclude: ['./app/**/*.browser.test.ts'], 8 + environment: 'node', 9 + globals: true, 10 + }, 11 + })
+14 -6
com-gm112-rust-testlibrary/src/lib.rs
··· 1 1 use wasm_bindgen::prelude::*; 2 2 3 3 /// Adds two numbers. 4 - /// 5 - /// ``` 4 + /// 5 + /// @example <caption>Add two numbers in Rust</caption> 6 + /// ```rust 7 + /// // In Rust: 6 8 /// use com_gm112_rust_testlibrary::add; 7 - /// assert_eq!(add(1, 2), 3); 9 + /// assert_eq!(add(1, 2).unwrap(), 3); 10 + /// ``` 11 + /// @example <caption>Add two numbers in TypeScript</caption> 12 + /// ```typescript 13 + /// // In TypeScript: 14 + /// import { add } from 'com-gm112-rust-testlibrary'; 15 + /// console.log(add(1, 2)); // 3 8 16 /// ``` 9 17 #[wasm_bindgen] 10 - pub fn add(a: i32, b: i32) -> i32 { 11 - a + b 12 - } 18 + pub fn add(a: i32, b: i32) -> Result<i32, JsValue> { 19 + Ok(a + b) 20 + }
+2
com-gm112-rust-testproject/.gitignore
··· 1 + node_modules 2 + dist
+10
com-gm112-rust-testproject/package.json
··· 1 + { 2 + "private": false, 3 + "type": "module", 4 + "scripts": { 5 + "build": "cargo build", 6 + "build:prod": "cargo build --release", 7 + "format": "cargo fmt && cargo clippy --fix", 8 + "lint": "cargo fmt --check && cargo clippy" 9 + } 10 + }
+2 -2
com-gm112-rust-testproject/src/main.rs
··· 1 1 fn main() { 2 2 println!("Hello, world!"); 3 - println!("Hello, world! {}", com_gm112_rust_testlibrary::add(1, 2)); 4 - } 3 + println!("2 + 2 = {:?}", com_gm112_rust_testlibrary::add(2, 2)); 4 + }
-30
notes.md
··· 1 - # Notes 2 - 3 - ## Setting up wasm in a rust project 4 - 5 - Make sure you have wasm-pack: cargo install wasm-pack 6 - 7 - Then in your lib.rs file. 8 - 9 - ```rust 10 - // Required for wasm_bindgen 11 - use wasm_bindgen::prelude::*; 12 - 13 - #[wasm_bindgen] 14 - extern "C" { 15 - pub fn alert(s: &str); 16 - } 17 - 18 - #[wasm_bindgen] //Add this to your external methods 19 - pub fn greet(name: &str) { 20 - alert(&format!("Hello, {}!", name)); 21 - } 22 - 23 - ``` 24 - 25 - Then, run 26 - 27 - ``` 28 - wasm-pack build --target web 29 - ``` 30 -
+16 -2
package.json
··· 1 1 { 2 - "private": true 3 - } 2 + "private": true, 3 + "type": "module", 4 + "scripts": { 5 + "build": "pnpm run --parallel build", 6 + "build:prod": "pnpm run --parallel build:prod", 7 + "test": "cargo test && pnpm run --parallel test", 8 + "playground": "pnpm run --filter=playground dev", 9 + "format": "prettier --write . && cargo fmt --all && cargo clippy --fix", 10 + "lint": "prettier --check . && cargo fmt --all --check && cargo clippy", 11 + "clean": "cargo clean" 12 + }, 13 + "devDependencies": { 14 + "prettier": "catalog:" 15 + }, 16 + "packageManager": "pnpm@10.17.1+sha512.17c560fca4867ae9473a3899ad84a88334914f379be46d455cbf92e5cf4b39d34985d452d2583baf19967fa76cb5c17bc9e245529d0b98745721aa7200ecaf7a" 17 + }
+20 -4
pnpm-lock.yaml
··· 15 15 playwright: 16 16 specifier: ^1.55.1 17 17 version: 1.55.1 18 + prettier: 19 + specifier: ^3.6.2 20 + version: 3.6.2 18 21 typescript: 19 22 specifier: ^5.9.3 20 23 version: 5.9.3 ··· 25 28 specifier: ^3.5.0 26 29 version: 3.5.0 27 30 vitest: 28 - specifier: ^3.2.4 31 + specifier: 3.2.4 29 32 version: 3.2.4 30 33 31 34 importers: 32 35 33 - .: {} 36 + .: 37 + devDependencies: 38 + prettier: 39 + specifier: 'catalog:' 40 + version: 3.6.2 34 41 35 - com-gm112-rust-testlibrary/pkg: {} 42 + com-gm112-rust-testlibrary: {} 36 43 37 44 com-gm112-rust-testlibrary/playground: 38 45 dependencies: ··· 48 55 version: 24.6.1 49 56 com-gm112-rust-testlibrary: 50 57 specifier: workspace:* 51 - version: link:../pkg 58 + version: link:.. 52 59 typescript: 53 60 specifier: 'catalog:' 54 61 version: 5.9.3 ··· 61 68 vitest: 62 69 specifier: 'catalog:' 63 70 version: 3.2.4(@types/node@24.6.1)(@vitest/browser@3.2.4) 71 + 72 + com-gm112-rust-testproject: {} 64 73 65 74 packages: 66 75 ··· 553 562 postcss@8.5.6: 554 563 resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 555 564 engines: {node: ^10 || ^12 || >=14} 565 + 566 + prettier@3.6.2: 567 + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} 568 + engines: {node: '>=14'} 569 + hasBin: true 556 570 557 571 pretty-format@27.5.1: 558 572 resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} ··· 1083 1097 nanoid: 3.3.11 1084 1098 picocolors: 1.1.1 1085 1099 source-map-js: 1.2.1 1100 + 1101 + prettier@3.6.2: {} 1086 1102 1087 1103 pretty-format@27.5.1: 1088 1104 dependencies:
+8 -1
pnpm-workspace.yaml
··· 1 1 packages: 2 2 - com-gm112-rust-testlibrary/**/* 3 + - com-gm112-rust-testlibrary 4 + - com-gm112-rust-testproject/**/* 5 + - com-gm112-rust-testproject 3 6 4 7 catalog: 5 8 '@types/node': ^24.6.1 6 9 '@vitest/browser': ^3.2.4 7 10 playwright: ^1.55.1 11 + prettier: ^3.6.2 8 12 typescript: ^5.9.3 9 13 vite: ^7.1.7 10 14 vite-plugin-wasm: ^3.5.0 11 - vitest: ^3.2.4 15 + vitest: 3.2.4 12 16 13 17 catalogMode: prefer 18 + 19 + onlyBuiltDependencies: 20 + - esbuild