diff --git a/.gitignore b/.gitignore index fb50435..d1bd197 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,9 @@ .mops/ .wasm/ +# ByteUtils submodule (now managed via mops) +ByteUtils/ + # frontend code node_modules/ dist/ diff --git a/bench/serde.bench.mo b/bench/serde.bench.mo index 65c4321..8bce671 100644 --- a/bench/serde.bench.mo +++ b/bench/serde.bench.mo @@ -1,9 +1,9 @@ -import Iter "mo:base@0.16.0/Iter"; -import Debug "mo:base@0.16.0/Debug"; -import Prelude "mo:base@0.16.0/Prelude"; -import Text "mo:base@0.16.0/Text"; -import Char "mo:base@0.16.0/Char"; -import Buffer "mo:base@0.16.0/Buffer"; +import Iter "mo:core/Iter"; +import Text "mo:core/Text"; +import Char "mo:core/Char"; +import Runtime "mo:core/Runtime"; + +import Utils "../src/Utils"; import Bench "mo:bench"; import Fuzz "mo:fuzz"; @@ -155,9 +155,9 @@ module { }; }; - let buffer = Buffer.Buffer(limit); - let candid_blobs = Buffer.Buffer(limit); - let candid_buffer = Buffer.Buffer<[Serde.Candid]>(limit); + let buffer = Utils.Buffer.Buffer(limit); + let candid_blobs = Utils.Buffer.Buffer(limit); + let candid_buffer = Utils.Buffer.Buffer<[Serde.Candid]>(limit); for (i in Itertools.range(0, limit)) { let item = new_item(); @@ -251,7 +251,7 @@ module { }; case (_, _) { - Debug.trap("Should be unreachable:\n row = \"" # debug_show row # "\" and col = \"" # debug_show col # "\""); + Runtime.trap("Should be unreachable:\n row = \"" # debug_show row # "\" and col = \"" # debug_show col # "\""); }; } ); diff --git a/bench/types.bench.mo b/bench/types.bench.mo index 094396f..26b4f07 100644 --- a/bench/types.bench.mo +++ b/bench/types.bench.mo @@ -1,23 +1,24 @@ -import Iter "mo:base@0.16.0/Iter"; -import Debug "mo:base@0.16.0/Debug"; -import Prelude "mo:base@0.16.0/Prelude"; -import Text "mo:base@0.16.0/Text"; -import Char "mo:base@0.16.0/Char"; -import Buffer "mo:base@0.16.0/Buffer"; -import Array "mo:base@0.16.0/Array"; -import Blob "mo:base@0.16.0/Blob"; -import Principal "mo:base@0.16.0/Principal"; -import Int "mo:base@0.16.0/Int"; -import Int8 "mo:base@0.16.0/Int8"; -import Int16 "mo:base@0.16.0/Int16"; -import Int32 "mo:base@0.16.0/Int32"; -import Int64 "mo:base@0.16.0/Int64"; -import Nat "mo:base@0.16.0/Nat"; -import Nat8 "mo:base@0.16.0/Nat8"; -import Nat16 "mo:base@0.16.0/Nat16"; -import Nat32 "mo:base@0.16.0/Nat32"; -import Nat64 "mo:base@0.16.0/Nat64"; -import Float "mo:base@0.16.0/Float"; +import Iter "mo:core/Iter"; +import Debug "mo:core/Debug"; +import Text "mo:core/Text"; +import Char "mo:core/Char"; +import Array "mo:core/Array"; +import Runtime "mo:core/Runtime"; + +import Utils "../src/Utils"; +import Blob "mo:core/Blob"; +import Principal "mo:core/Principal"; +import Int "mo:core/Int"; +import Int8 "mo:core/Int8"; +import Int16 "mo:core/Int16"; +import Int32 "mo:core/Int32"; +import Int64 "mo:core/Int64"; +import Nat "mo:core/Nat"; +import Nat8 "mo:core/Nat8"; +import Nat16 "mo:core/Nat16"; +import Nat32 "mo:core/Nat32"; +import Nat64 "mo:core/Nat64"; +import Float "mo:core/Float"; import Bench "mo:bench"; import Fuzz "mo:fuzz"; @@ -104,27 +105,27 @@ module { let limit = 1000; // Generate test data for each type - let nat_values = Buffer.Buffer(limit); - let nat8_values = Buffer.Buffer(limit); - let nat16_values = Buffer.Buffer(limit); - let nat32_values = Buffer.Buffer(limit); - let nat64_values = Buffer.Buffer(limit); - let int_values = Buffer.Buffer(limit); - let int8_values = Buffer.Buffer(limit); - let int16_values = Buffer.Buffer(limit); - let int32_values = Buffer.Buffer(limit); - let int64_values = Buffer.Buffer(limit); - let float_values = Buffer.Buffer(limit); - let bool_values = Buffer.Buffer(limit); - let text_values = Buffer.Buffer(limit); - let principal_values = Buffer.Buffer(limit); - let blob_values = Buffer.Buffer(limit); + let nat_values = Utils.Buffer.Buffer(limit); + let nat8_values = Utils.Buffer.Buffer(limit); + let nat16_values = Utils.Buffer.Buffer(limit); + let nat32_values = Utils.Buffer.Buffer(limit); + let nat64_values = Utils.Buffer.Buffer(limit); + let int_values = Utils.Buffer.Buffer(limit); + let int8_values = Utils.Buffer.Buffer(limit); + let int16_values = Utils.Buffer.Buffer(limit); + let int32_values = Utils.Buffer.Buffer(limit); + let int64_values = Utils.Buffer.Buffer(limit); + let float_values = Utils.Buffer.Buffer(limit); + let bool_values = Utils.Buffer.Buffer(limit); + let text_values = Utils.Buffer.Buffer(limit); + let principal_values = Utils.Buffer.Buffer(limit); + let blob_values = Utils.Buffer.Buffer(limit); // Compound type test data - let option_nat_values = Buffer.Buffer(limit); - let option_text_values = Buffer.Buffer(limit); - let array_nat8_values = Buffer.Buffer<[Nat8]>(limit); - let array_text_values = Buffer.Buffer<[Text]>(limit); + let option_nat_values = Utils.Buffer.Buffer(limit); + let option_text_values = Utils.Buffer.Buffer(limit); + let array_nat8_values = Utils.Buffer.Buffer<[Nat8]>(limit); + let array_text_values = Utils.Buffer.Buffer<[Text]>(limit); // Complex structures type SimpleRecord = { id : Nat; name : Text; active : Bool }; @@ -141,18 +142,18 @@ module { #guest; }; - let simple_record_values = Buffer.Buffer(limit); - let nested_record_values = Buffer.Buffer(limit); - let mixed_tuple_values = Buffer.Buffer(limit); - let simple_variant_values = Buffer.Buffer(limit); - let complex_variant_values = Buffer.Buffer(limit); - let map_values = Buffer.Buffer<[(Text, Nat)]>(limit); + let simple_record_values = Utils.Buffer.Buffer(limit); + let nested_record_values = Utils.Buffer.Buffer(limit); + let mixed_tuple_values = Utils.Buffer.Buffer(limit); + let simple_variant_values = Utils.Buffer.Buffer(limit); + let complex_variant_values = Utils.Buffer.Buffer(limit); + let map_values = Utils.Buffer.Buffer<[(Text, Nat)]>(limit); // Edge case data - let large_text_values = Buffer.Buffer(limit); - let large_array_values = Buffer.Buffer<[Nat]>(limit); - let deep_nesting_values = Buffer.Buffer(limit); - let wide_record_values = Buffer.Buffer(limit); + let large_text_values = Utils.Buffer.Buffer(limit); + let large_array_values = Utils.Buffer.Buffer<[Nat]>(limit); + let deep_nesting_values = Utils.Buffer.Buffer(limit); + let wide_record_values = Utils.Buffer.Buffer(limit); let random_principal = fuzz.principal.randomPrincipal(29); @@ -367,35 +368,35 @@ module { // Storage for encoded blobs let encoded_blobs = { - var nat = Buffer.Buffer(limit); - var nat8 = Buffer.Buffer(limit); - var nat16 = Buffer.Buffer(limit); - var nat32 = Buffer.Buffer(limit); - var nat64 = Buffer.Buffer(limit); - var int = Buffer.Buffer(limit); - var int8 = Buffer.Buffer(limit); - var int16 = Buffer.Buffer(limit); - var int32 = Buffer.Buffer(limit); - var int64 = Buffer.Buffer(limit); - var float = Buffer.Buffer(limit); - var bool = Buffer.Buffer(limit); - var text = Buffer.Buffer(limit); - var principal = Buffer.Buffer(limit); - var blob = Buffer.Buffer(limit); - var option_nat = Buffer.Buffer(limit); - var option_text = Buffer.Buffer(limit); - var array_nat8 = Buffer.Buffer(limit); - var array_text = Buffer.Buffer(limit); - var simple_record = Buffer.Buffer(limit); - var nested_record = Buffer.Buffer(limit); - var mixed_tuple = Buffer.Buffer(limit); - var simple_variant = Buffer.Buffer(limit); - var complex_variant = Buffer.Buffer(limit); - var map_values = Buffer.Buffer(limit); - var large_text = Buffer.Buffer(limit); - var large_array = Buffer.Buffer(limit); - var deep_nesting = Buffer.Buffer(limit); - var wide_record = Buffer.Buffer(limit); + var nat = Utils.Buffer.Buffer(limit); + var nat8 = Utils.Buffer.Buffer(limit); + var nat16 = Utils.Buffer.Buffer(limit); + var nat32 = Utils.Buffer.Buffer(limit); + var nat64 = Utils.Buffer.Buffer(limit); + var int = Utils.Buffer.Buffer(limit); + var int8 = Utils.Buffer.Buffer(limit); + var int16 = Utils.Buffer.Buffer(limit); + var int32 = Utils.Buffer.Buffer(limit); + var int64 = Utils.Buffer.Buffer(limit); + var float = Utils.Buffer.Buffer(limit); + var bool = Utils.Buffer.Buffer(limit); + var text = Utils.Buffer.Buffer(limit); + var principal = Utils.Buffer.Buffer(limit); + var blob = Utils.Buffer.Buffer(limit); + var option_nat = Utils.Buffer.Buffer(limit); + var option_text = Utils.Buffer.Buffer(limit); + var array_nat8 = Utils.Buffer.Buffer(limit); + var array_text = Utils.Buffer.Buffer(limit); + var simple_record = Utils.Buffer.Buffer(limit); + var nested_record = Utils.Buffer.Buffer(limit); + var mixed_tuple = Utils.Buffer.Buffer(limit); + var simple_variant = Utils.Buffer.Buffer(limit); + var complex_variant = Utils.Buffer.Buffer(limit); + var map_values = Utils.Buffer.Buffer(limit); + var large_text = Utils.Buffer.Buffer(limit); + var large_array = Utils.Buffer.Buffer(limit); + var deep_nesting = Utils.Buffer.Buffer(limit); + var wide_record = Utils.Buffer.Buffer(limit); }; bench.runner( @@ -1469,7 +1470,7 @@ module { }; case (_, _) { - Debug.trap("Unhandled benchmark case: row = \"" # row # "\", col = \"" # col # "\""); + Runtime.trap("Unhandled benchmark case: row = \"" # row # "\", col = \"" # col # "\""); }; } ); diff --git a/mops.toml b/mops.toml index f953119..bad04d9 100644 --- a/mops.toml +++ b/mops.toml @@ -7,22 +7,24 @@ keywords = ["json", "candid", "cbor", "urlencoded", "serialization"] license = "MIT" [dependencies] -"base@0.16.0" = "0.16.0" +core = "2.0.0" "itertools@0.2.2" = "0.2.2" -"xtended-numbers@2.0.0" = "2.0.0" -"cbor@4.0.0" = "4.0.0" -"map@9.0.1" = "9.0.1" +"xtended-numbers" = "2.3.0" +"xtended-numbers@2.3.0" = "2.3.0" # because for ByteUtils +"cbor@4.1.0" = "4.1.0" "sha2@0.1.6" = "0.1.6" -"byte-utils@0.1.2" = "0.1.2" -"base@0.7.3" = "0.7.3" +"byte-utils@0.1.2" = "https://github.com/ggreif/ByteUtils#fc522a0ba56764b76b866e29d3cbeeb3ea7f0060" +buffer = "0.1.0" +"base@0.14.13" = "0.14.13" # because for ByteUtils +"base@0.7.3" = "0.14.13" # because for ByteUtils [dev-dependencies] test = "2.1.1" fuzz = "1.0.0" rep-indy-hash = "0.1.1" -candid = "2.0.0" +candid = "2.4.2" bench = "1.0.0" [toolchain] wasmtime = "33.0.1" -moc = "0.16.2" +moc = "1.1.0" diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e7e49f4 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5765 @@ +{ + "name": "serde", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "ic-mops": "^2.0.1" + } + }, + "node_modules/@asamuzakjp/css-color": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@dfinity/agent": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-3.4.3.tgz", + "integrity": "sha512-qOJqvZdMzncbbYX3eUjlAqvP66DQuOQgBFQE06yzI3m/lVXnefxvY7wE9Y1Sb2wjVIQs6W2rfjixnn4EEjHAZg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@dfinity/cbor": "^0.2.2", + "@noble/curves": "^1.9.2" + }, + "peerDependencies": { + "@dfinity/candid": "3.4.3", + "@dfinity/principal": "3.4.3", + "@noble/hashes": "^1.8.0" + } + }, + "node_modules/@dfinity/candid": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-3.4.3.tgz", + "integrity": "sha512-M2MuNariyCZHvxT0IXvMWmg8jvG19EORDveoFm7PCIVXLgYfWSy0P59t6tQ24D72yRGu40CRLm85aqpt3cRvxw==", + "license": "Apache-2.0", + "peer": true, + "peerDependencies": { + "@dfinity/principal": "3.4.3" + } + }, + "node_modules/@dfinity/cbor": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@dfinity/cbor/-/cbor-0.2.2.tgz", + "integrity": "sha512-GPJpH73kDEKbUBdUjY80lz7cq9l0vm1h/7ppejPV6O0ZTqCLrYspssYvqjRmK4aNnJ/SKXsP0rg9LYX7zpegaA==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@dfinity/identity": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@dfinity/identity/-/identity-3.4.3.tgz", + "integrity": "sha512-mAsdmlaZPe7UkPL8AKNq7801pYve3LWnXQLOq39Nu+pzAUWRnZcKO3Ao+xouym5VnQnBwO68BnSSvQ044bEyTA==", + "license": "Apache-2.0", + "peer": true, + "peerDependencies": { + "@dfinity/agent": "3.4.3", + "@dfinity/candid": "3.4.3", + "@dfinity/principal": "3.4.3", + "@noble/curves": "^1.9.2", + "@noble/hashes": "^1.8.0" + } + }, + "node_modules/@dfinity/identity-secp256k1": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@dfinity/identity-secp256k1/-/identity-secp256k1-3.4.3.tgz", + "integrity": "sha512-Mao+EQZUWJ9oG90eS3GwI3zU4zdccvhuBANBpCJWhcad84HYkr7NIJRQRYWSDmIXdALcU8jCeUvyhLxxgk0akQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@dfinity/agent": "3.4.3", + "@scure/bip32": "^1.7.0", + "@scure/bip39": "^1.6.0", + "asn1js": "^3.0.5" + }, + "peerDependencies": { + "@dfinity/candid": "3.4.3", + "@noble/curves": "^1.9.2", + "@noble/hashes": "^1.8.0" + } + }, + "node_modules/@dfinity/principal": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-3.4.3.tgz", + "integrity": "sha512-KTWIRqj/0clwsxcXnjgMVpnvxis6ji8vddRbBnYLsPjRFaVXHeBwVN1rziA1w3u7AtlP3kuovB4czd2F5ORxDw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@noble/hashes": "^1.8.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", + "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "license": "ISC" + }, + "node_modules/@icp-sdk/core": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@icp-sdk/core/-/core-4.0.2.tgz", + "integrity": "sha512-tiNXiLbzc4+CJV2R/sk8Iw9WREZ32SmwPPvt5qYUaQDs6A8iftr03alCkVa+Frx4CKqbeVrJehsp07Ms7ZaHWA==", + "license": "Apache-2.0", + "peerDependencies": { + "@dfinity/agent": "^3.2.4", + "@dfinity/candid": "^3.2.4", + "@dfinity/identity": "^3.2.4", + "@dfinity/identity-secp256k1": "^3.2.4", + "@dfinity/principal": "^3.2.4" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/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==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/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==", + "license": "MIT", + "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/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@napi-rs/lzma": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma/-/lzma-1.4.5.tgz", + "integrity": "sha512-zS5LuN1OBPAyZpda2ZZgYOEDC+xecUdAGnrvbYzjnLXkrq/OBC3B9qcRvlxbDR3k5H/gVfvef1/jyUqPknqjbg==", + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/lzma-android-arm-eabi": "1.4.5", + "@napi-rs/lzma-android-arm64": "1.4.5", + "@napi-rs/lzma-darwin-arm64": "1.4.5", + "@napi-rs/lzma-darwin-x64": "1.4.5", + "@napi-rs/lzma-freebsd-x64": "1.4.5", + "@napi-rs/lzma-linux-arm-gnueabihf": "1.4.5", + "@napi-rs/lzma-linux-arm64-gnu": "1.4.5", + "@napi-rs/lzma-linux-arm64-musl": "1.4.5", + "@napi-rs/lzma-linux-ppc64-gnu": "1.4.5", + "@napi-rs/lzma-linux-riscv64-gnu": "1.4.5", + "@napi-rs/lzma-linux-s390x-gnu": "1.4.5", + "@napi-rs/lzma-linux-x64-gnu": "1.4.5", + "@napi-rs/lzma-linux-x64-musl": "1.4.5", + "@napi-rs/lzma-wasm32-wasi": "1.4.5", + "@napi-rs/lzma-win32-arm64-msvc": "1.4.5", + "@napi-rs/lzma-win32-ia32-msvc": "1.4.5", + "@napi-rs/lzma-win32-x64-msvc": "1.4.5" + } + }, + "node_modules/@napi-rs/lzma-android-arm-eabi": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-android-arm-eabi/-/lzma-android-arm-eabi-1.4.5.tgz", + "integrity": "sha512-Up4gpyw2SacmyKWWEib06GhiDdF+H+CCU0LAV8pnM4aJIDqKKd5LHSlBht83Jut6frkB0vwEPmAkv4NjQ5u//Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-android-arm64": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-android-arm64/-/lzma-android-arm64-1.4.5.tgz", + "integrity": "sha512-uwa8sLlWEzkAM0MWyoZJg0JTD3BkPknvejAFG2acUA1raXM8jLrqujWCdOStisXhqQjZ2nDMp3FV6cs//zjfuQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-darwin-arm64": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-darwin-arm64/-/lzma-darwin-arm64-1.4.5.tgz", + "integrity": "sha512-0Y0TQLQ2xAjVabrMDem1NhIssOZzF/y/dqetc6OT8mD3xMTDtF8u5BqZoX3MyPc9FzpsZw4ksol+w7DsxHrpMA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-darwin-x64": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-darwin-x64/-/lzma-darwin-x64-1.4.5.tgz", + "integrity": "sha512-vR2IUyJY3En+V1wJkwmbGWcYiT8pHloTAWdW4pG24+51GIq+intst6Uf6D/r46citObGZrlX0QvMarOkQeHWpw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-freebsd-x64": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-freebsd-x64/-/lzma-freebsd-x64-1.4.5.tgz", + "integrity": "sha512-XpnYQC5SVovO35tF0xGkbHYjsS6kqyNCjuaLQ2dbEblFRr5cAZVvsJ/9h7zj/5FluJPJRDojVNxGyRhTp4z2lw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-linux-arm-gnueabihf": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-arm-gnueabihf/-/lzma-linux-arm-gnueabihf-1.4.5.tgz", + "integrity": "sha512-ic1ZZMoRfRMwtSwxkyw4zIlbDZGC6davC9r+2oX6x9QiF247BRqqT94qGeL5ZP4Vtz0Hyy7TEViWhx5j6Bpzvw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-linux-arm64-gnu": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-arm64-gnu/-/lzma-linux-arm64-gnu-1.4.5.tgz", + "integrity": "sha512-asEp7FPd7C1Yi6DQb45a3KPHKOFBSfGuJWXcAd4/bL2Fjetb2n/KK2z14yfW8YC/Fv6x3rBM0VAZKmJuz4tysg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-linux-arm64-musl": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-arm64-musl/-/lzma-linux-arm64-musl-1.4.5.tgz", + "integrity": "sha512-yWjcPDgJ2nIL3KNvi4536dlT/CcCWO0DUyEOlBs/SacG7BeD6IjGh6yYzd3/X1Y3JItCbZoDoLUH8iB1lTXo3w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-linux-ppc64-gnu": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-ppc64-gnu/-/lzma-linux-ppc64-gnu-1.4.5.tgz", + "integrity": "sha512-0XRhKuIU/9ZjT4WDIG/qnX7Xz7mSQHYZo9Gb3MP2gcvBgr6BA4zywQ9k3gmQaPn9ECE+CZg2V7DV7kT+x2pUMQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-linux-riscv64-gnu": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-riscv64-gnu/-/lzma-linux-riscv64-gnu-1.4.5.tgz", + "integrity": "sha512-QrqDIPEUUB23GCpyQj/QFyMlr8SGxxyExeZz9OWFnHfb70kXdTLWrHS/hEI1Ru+lSbQ/6xRqeoGyQ4Aqdg+/RA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-linux-s390x-gnu": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-s390x-gnu/-/lzma-linux-s390x-gnu-1.4.5.tgz", + "integrity": "sha512-k8RVM5aMhW86E9H0QXdquwojew4H3SwPxbRVbl49/COJQWCUjGi79X6mYruMnMPEznZinUiT1jgKbFo2A00NdA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-linux-x64-gnu": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.4.5.tgz", + "integrity": "sha512-6rMtBgnIq2Wcl1rQdZsnM+rtCcVCbws1nF8S2NzaUsVaZv8bjrPiAa0lwg4Eqnn1d9lgwqT+cZgm5m+//K08Kw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-linux-x64-musl": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-musl/-/lzma-linux-x64-musl-1.4.5.tgz", + "integrity": "sha512-eiadGBKi7Vd0bCArBUOO/qqRYPHt/VQVvGyYvDFt6C2ZSIjlD+HuOl+2oS1sjf4CFjK4eDIog6EdXnL0NE6iyQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-wasm32-wasi": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-wasm32-wasi/-/lzma-wasm32-wasi-1.4.5.tgz", + "integrity": "sha512-+VyHHlr68dvey6fXc2hehw9gHVFIW3TtGF1XkcbAu65qVXsA9D/T+uuoRVqhE+JCyFHFrO0ixRbZDRK1XJt1sA==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.0.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@napi-rs/lzma-win32-arm64-msvc": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-win32-arm64-msvc/-/lzma-win32-arm64-msvc-1.4.5.tgz", + "integrity": "sha512-eewnqvIyyhHi3KaZtBOJXohLvwwN27gfS2G/YDWdfHlbz1jrmfeHAmzMsP5qv8vGB+T80TMHNkro4kYjeh6Deg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-win32-ia32-msvc": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-win32-ia32-msvc/-/lzma-win32-ia32-msvc-1.4.5.tgz", + "integrity": "sha512-OeacFVRCJOKNU/a0ephUfYZ2Yt+NvaHze/4TgOwJ0J0P4P7X1mHzN+ig9Iyd74aQDXYqc7kaCXA2dpAOcH87Cg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/lzma-win32-x64-msvc": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-win32-x64-msvc/-/lzma-win32-x64-msvc-1.4.5.tgz", + "integrity": "sha512-T4I1SamdSmtyZgDXGAGP+y5LEK5vxHUFwe8mz6D4R7Sa5/WCxTcCIgPJ9BD7RkpO17lzhlaM2vmVvMy96Lvk9Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", + "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1", + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@noble/curves": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@octokit/app": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@octokit/app/-/app-14.1.0.tgz", + "integrity": "sha512-g3uEsGOQCBl1+W1rgfwoRFUIR6PtvB2T1E4RpygeUU5LrLvlOqcxrt5lfykIeRpUPpupreGJUYl70fqMDXdTpw==", + "license": "MIT", + "dependencies": { + "@octokit/auth-app": "^6.0.0", + "@octokit/auth-unauthenticated": "^5.0.0", + "@octokit/core": "^5.0.0", + "@octokit/oauth-app": "^6.0.0", + "@octokit/plugin-paginate-rest": "^9.0.0", + "@octokit/types": "^12.0.0", + "@octokit/webhooks": "^12.0.4" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-app": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-6.1.4.tgz", + "integrity": "sha512-QkXkSOHZK4dA5oUqY5Dk3S+5pN2s1igPjEASNQV8/vgJgW034fQWR16u7VsNOK/EljA00eyjYF5mWNxWKWhHRQ==", + "license": "MIT", + "dependencies": { + "@octokit/auth-oauth-app": "^7.1.0", + "@octokit/auth-oauth-user": "^4.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "deprecation": "^2.3.1", + "lru-cache": "npm:@wolfy1339/lru-cache@^11.0.2-patch.1", + "universal-github-app-jwt": "^1.1.2", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@octokit/auth-app/node_modules/lru-cache": { + "name": "@wolfy1339/lru-cache", + "version": "11.0.2-patch.1", + "resolved": "https://registry.npmjs.org/@wolfy1339/lru-cache/-/lru-cache-11.0.2-patch.1.tgz", + "integrity": "sha512-BgYZfL2ADCXKOw2wJtkM3slhHotawWkgIRRxq4wEybnZQPjvAp71SPX35xepMykTw8gXlzWcWPTY31hlbnRsDA==", + "license": "ISC", + "engines": { + "node": "18 >=18.20 || 20 || >=22" + } + }, + "node_modules/@octokit/auth-oauth-app": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-7.1.0.tgz", + "integrity": "sha512-w+SyJN/b0l/HEb4EOPRudo7uUOSW51jcK1jwLa+4r7PA8FPFpoxEnHBHMITqCsc/3Vo2qqFjgQfz/xUUvsSQnA==", + "license": "MIT", + "dependencies": { + "@octokit/auth-oauth-device": "^6.1.0", + "@octokit/auth-oauth-user": "^4.1.0", + "@octokit/request": "^8.3.1", + "@octokit/types": "^13.0.0", + "@types/btoa-lite": "^1.0.0", + "btoa-lite": "^1.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@octokit/auth-oauth-device": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-6.1.0.tgz", + "integrity": "sha512-FNQ7cb8kASufd6Ej4gnJ3f1QB5vJitkoV1O0/g6e6lUsQ7+VsSNRHRmFScN2tV4IgKA12frrr/cegUs0t+0/Lw==", + "license": "MIT", + "dependencies": { + "@octokit/oauth-methods": "^4.1.0", + "@octokit/request": "^8.3.1", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@octokit/auth-oauth-user": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-4.1.0.tgz", + "integrity": "sha512-FrEp8mtFuS/BrJyjpur+4GARteUCrPeR/tZJzD8YourzoVhRics7u7we/aDcKv+yywRNwNi/P4fRi631rG/OyQ==", + "license": "MIT", + "dependencies": { + "@octokit/auth-oauth-device": "^6.1.0", + "@octokit/oauth-methods": "^4.1.0", + "@octokit/request": "^8.3.1", + "@octokit/types": "^13.0.0", + "btoa-lite": "^1.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/auth-unauthenticated": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-5.0.1.tgz", + "integrity": "sha512-oxeWzmBFxWd+XolxKTc4zr+h3mt+yofn4r7OfoIkR/Cj/o70eEGmPsFbueyJE2iBAGpjgTnEOKM3pnuEGVmiqg==", + "license": "MIT", + "dependencies": { + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^12.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz", + "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.4.1", + "@octokit/request-error": "^5.1.1", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" + }, + "node_modules/@octokit/core/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@octokit/endpoint": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz", + "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/endpoint/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" + }, + "node_modules/@octokit/endpoint/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@octokit/graphql": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz", + "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==", + "license": "MIT", + "dependencies": { + "@octokit/request": "^8.4.1", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" + }, + "node_modules/@octokit/graphql/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@octokit/oauth-app": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-6.1.0.tgz", + "integrity": "sha512-nIn/8eUJ/BKUVzxUXd5vpzl1rwaVxMyYbQkNZjHrF7Vk/yu98/YDF/N2KeWO7uZ0g3b5EyiFXFkZI8rJ+DH1/g==", + "license": "MIT", + "dependencies": { + "@octokit/auth-oauth-app": "^7.0.0", + "@octokit/auth-oauth-user": "^4.0.0", + "@octokit/auth-unauthenticated": "^5.0.0", + "@octokit/core": "^5.0.0", + "@octokit/oauth-authorization-url": "^6.0.2", + "@octokit/oauth-methods": "^4.0.0", + "@types/aws-lambda": "^8.10.83", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-authorization-url": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-6.0.2.tgz", + "integrity": "sha512-CdoJukjXXxqLNK4y/VOiVzQVjibqoj/xHgInekviUJV73y/BSIcwvJ/4aNHPBPKcPWFnd4/lO9uqRV65jXhcLA==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-methods": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-4.1.0.tgz", + "integrity": "sha512-4tuKnCRecJ6CG6gr0XcEXdZtkTDbfbnD5oaHBmLERTjTMZNi2CbfEHZxPU41xXLDG4DfKf+sonu00zvKI9NSbw==", + "license": "MIT", + "dependencies": { + "@octokit/oauth-authorization-url": "^6.0.2", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", + "btoa-lite": "^1.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-graphql": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-4.0.1.tgz", + "integrity": "sha512-R8ZQNmrIKKpHWC6V2gum4x9LG2qF1RxRjo27gjQcG3j+vf2tLsEfE7I/wRWEPzYMaenr1M+qDAtNcwZve1ce1A==", + "license": "MIT", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=5" + } + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz", + "integrity": "sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", + "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-retry": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.1.0.tgz", + "integrity": "sha512-WrO3bvq4E1Xh1r2mT9w6SDFg01gFmP81nIG77+p/MqW1JeXXgL++6umim3t6x0Zj5pZm3rXAN+0HEjmmdhIRig==", + "license": "MIT", + "dependencies": { + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^13.0.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-retry/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" + }, + "node_modules/@octokit/plugin-retry/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@octokit/plugin-throttling": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz", + "integrity": "sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^12.2.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "^5.0.0" + } + }, + "node_modules/@octokit/request": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz", + "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==", + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^9.0.6", + "@octokit/request-error": "^5.1.1", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz", + "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" + }, + "node_modules/@octokit/request-error/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@octokit/request/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" + }, + "node_modules/@octokit/request/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@octokit/webhooks": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-12.3.2.tgz", + "integrity": "sha512-exj1MzVXoP7xnAcAB3jZ97pTvVPkQF9y6GA/dvYC47HV7vLv+24XRS6b/v/XnyikpEuvMhugEXdGtAlU086WkQ==", + "license": "MIT", + "dependencies": { + "@octokit/request-error": "^5.0.0", + "@octokit/webhooks-methods": "^4.1.0", + "@octokit/webhooks-types": "7.6.1", + "aggregate-error": "^3.1.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/webhooks-methods": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-4.1.0.tgz", + "integrity": "sha512-zoQyKw8h9STNPqtm28UGOYFE7O6D4Il8VJwhAtMHFt2C4L0VQT1qGKLeefUOqHNs1mNRYSadVv7x0z8U2yyeWQ==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/webhooks-types": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-7.6.1.tgz", + "integrity": "sha512-S8u2cJzklBC0FgTwWVLaM8tMrDuDMVE4xiTK4EYXM9GntyvrdbSoxqDQa+Fh57CCNApyIpyeqPhhFEmHPfrXgw==", + "license": "MIT" + }, + "node_modules/@scure/base": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", + "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", + "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz", + "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/aws-lambda": { + "version": "8.10.160", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.160.tgz", + "integrity": "sha512-uoO4QVQNWFPJMh26pXtmtrRfGshPUSpMZGUyUQY20FhfHEElEBOPKgVmFs1z+kbpyBsRs2JnoOPT7++Z4GA9pA==", + "license": "MIT" + }, + "node_modules/@types/btoa-lite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.2.tgz", + "integrity": "sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==", + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT" + }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz", + "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==", + "license": "MIT", + "dependencies": { + "@types/ms": "*", + "@types/node": "*" + } + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.0.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.10.tgz", + "integrity": "sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", + "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/as-table": { + "version": "1.0.55", + "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", + "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", + "license": "MIT", + "dependencies": { + "printable-characters": "^1.0.42" + } + }, + "node_modules/asn1js": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.7.tgz", + "integrity": "sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "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==", + "license": "MIT" + }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "license": "Apache-2.0" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "license": "ISC", + "dependencies": { + "@noble/hashes": "^1.2.0" + } + }, + "node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==", + "license": "MIT" + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "license": "MIT", + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "license": "MIT" + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "license": "MIT" + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-12.0.1.tgz", + "integrity": "sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "^4.0.4", + "get-stream": "^9.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.4", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.1", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/change-case": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", + "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "license": "MIT" + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssstyle": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^3.2.0", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/debounce": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-2.2.0.tgz", + "integrity": "sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "license": "MIT" + }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decomp-tar": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/decomp-tar/-/decomp-tar-0.1.1.tgz", + "integrity": "sha512-+MVkfgK6GRAdwbIN/4LTpBjONYCeCvAHWyQNYZXjl1e3bPKbNHu+dL62qR5ziHcMhjCeFOGvMx1mZbfiQ6+4zg==", + "license": "MIT", + "dependencies": { + "file-type": "^5.2.0", + "is-stream": "^3.0.0", + "tar-stream": "^3.1.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decomp-tar/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decomp-tarxz": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/decomp-tarxz/-/decomp-tarxz-0.1.1.tgz", + "integrity": "sha512-V6bThFjjouy/kQz6cDuf/DZnQ5eMi32bggu6rSNByNnzTll7jDygUWFDV2J3x6LUZVU4CsfpkNFHcUeGgl/SUQ==", + "license": "MIT", + "dependencies": { + "@napi-rs/lzma": "^1.1.2", + "decomp-tar": "^0.1.1", + "file-type": "^12.3.0", + "get-stream": "^8.0.1", + "is-stream": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/decomp-tarxz/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "license": "MIT", + "dependencies": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-tar/node_modules/tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "license": "MIT", + "dependencies": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "license": "MIT", + "dependencies": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip/node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "license": "MIT", + "dependencies": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-8.0.0.tgz", + "integrity": "sha512-R6ep6JJ+eOBZsBr9esiNN1gxFbZE4Q2cULkUSFumGYecAiS6qodDvcPx/sFuWHMNul7DWmrtoEOpYSm7o6tbSA==", + "license": "MIT", + "dependencies": { + "globby": "^14.0.2", + "is-glob": "^4.0.3", + "is-path-cwd": "^3.0.0", + "is-path-inside": "^4.0.0", + "p-map": "^7.0.2", + "slash": "^5.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "license": "ISC" + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dhall-to-json-cli": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/dhall-to-json-cli/-/dhall-to-json-cli-1.7.6.tgz", + "integrity": "sha512-cOZr8fWAfwMc0bFdjXG3M3sAesy2OeAmZ23e3mMsBFg/W+SFejACc9QmadvKnDrh857jVJj14xa9dTJogREU5A==", + "license": "MIT", + "bin": { + "dhall-to-json": "bin/dhall-to-json", + "dhall-to-json-1.7.6-x86_64-linux": "bin/builds/dhall-to-json-1.7.6-x86_64-linux", + "dhall-to-json-1.7.6-x86_64-macos": "bin/builds/dhall-to-json-1.7.6-x86_64-macos" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, + "node_modules/execa": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.3.1.tgz", + "integrity": "sha512-gdhefCCNy/8tpH/2+ajP9IQc14vXchNdd0weyzSJEFURhRMGncQ+zKFxwjAufIewPEJm9BPOaJnvg2UtlH2gPQ==", + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.3", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^5.2.0", + "pretty-ms": "^9.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "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.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-type": { + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", + "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/filesize": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz", + "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 10.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data-encoder": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.1.0.tgz", + "integrity": "sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "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==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-folder-size": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/get-folder-size/-/get-folder-size-5.0.0.tgz", + "integrity": "sha512-+fgtvbL83tSDypEK+T411GDBQVQtxv+qtQgbV+HVa/TYubqDhNd5ghH/D6cOHY9iC5/88GtOZB7WI8PXy2A3bg==", + "license": "MIT", + "bin": { + "get-folder-size": "bin/get-folder-size.js" + }, + "engines": { + "node": ">=18.11.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "14.4.6", + "resolved": "https://registry.npmjs.org/got/-/got-14.4.6.tgz", + "integrity": "sha512-rnhwfM/PhMNJ1i17k3DuDqgj0cKx3IHxBKVv/WX1uDKqrhi2Gv3l7rhPThR/Cc6uU++dD97W9c8Y0qyw9x0jag==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^7.0.1", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^12.0.1", + "decompress-response": "^6.0.0", + "form-data-encoder": "^4.0.2", + "http2-wrapper": "^2.2.1", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^4.0.1", + "responselike": "^3.0.0", + "type-fest": "^4.26.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/ic-mops": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ic-mops/-/ic-mops-2.0.1.tgz", + "integrity": "sha512-4fTUwDR3/yJyfKEUCVflzwDq7Q7cjFCE1LX71ExVponhb0uFcnqlZku6edYuUGIJL9t9AvdMb2WCuwZLnqWfZA==", + "license": "MIT", + "dependencies": { + "@iarna/toml": "2.2.5", + "@icp-sdk/core": "4.0.2", + "@noble/hashes": "1.8.0", + "as-table": "1.0.55", + "buffer": "6.0.3", + "cacheable-request": "12.0.1", + "chalk": "5.4.1", + "change-case": "5.4.4", + "chokidar": "3.6.0", + "commander": "13.1.0", + "debounce": "2.2.0", + "decomp-tarxz": "0.1.1", + "decompress": "4.2.1", + "del": "8.0.0", + "dhall-to-json-cli": "1.7.6", + "execa": "9.3.1", + "filesize": "10.1.6", + "fs-extra": "11.2.0", + "get-folder-size": "5.0.0", + "glob": "11.0.1", + "globby": "14.0.2", + "got": "14.4.6", + "jsdom": "26.1.0", + "log-update": "6.1.0", + "markdown-table": "3.0.4", + "mdast-util-from-markdown": "2.0.2", + "mdast-util-to-markdown": "2.1.2", + "minimatch": "10.0.1", + "ncp": "2.0.0", + "node-fetch": "3.3.2", + "octokit": "3.1.2", + "pem-file": "1.0.1", + "pic-ic": "0.5.4", + "pic-js-mops": "0.14.8", + "prettier": "3.5.3", + "prettier-plugin-motoko": "0.11.0", + "promisify-child-process": "4.1.2", + "prompts": "2.4.2", + "semver": "7.7.1", + "stream-to-promise": "3.0.0", + "string-width": "7.2.0", + "tar": "7.5.6", + "terminal-size": "4.0.0" + }, + "bin": { + "ic-mops": "dist/bin/mops.js", + "moc-wrapper": "bin/moc-wrapper.sh", + "mops": "dist/bin/mops.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "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==", + "license": "ISC" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", + "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "license": "MIT" + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jsdom": { + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", + "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", + "license": "MIT", + "dependencies": { + "cssstyle": "^4.2.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.5.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.16", + "parse5": "^7.2.1", + "rrweb-cssom": "^0.8.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.1.1", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.1.1", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "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==", + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", + "license": "MIT", + "bin": { + "ncp": "bin/ncp" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.1.tgz", + "integrity": "sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nwsapi": { + "version": "2.2.23", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz", + "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/octokit": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/octokit/-/octokit-3.1.2.tgz", + "integrity": "sha512-MG5qmrTL5y8KYwFgE1A4JWmgfQBaIETE/lOlfwNYx1QOtCQHGVxkRJmdUJltFc1HVn73d61TlMhMyNTOtMl+ng==", + "license": "MIT", + "dependencies": { + "@octokit/app": "^14.0.2", + "@octokit/core": "^5.0.0", + "@octokit/oauth-app": "^6.0.0", + "@octokit/plugin-paginate-graphql": "^4.0.0", + "@octokit/plugin-paginate-rest": "^9.0.0", + "@octokit/plugin-rest-endpoint-methods": "^10.0.0", + "@octokit/plugin-retry": "^6.0.0", + "@octokit/plugin-throttling": "^8.0.0", + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^12.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/out-of-character": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/out-of-character/-/out-of-character-1.2.4.tgz", + "integrity": "sha512-2/wkZ8i3b1jLeYbHI+jFZBunMQsbBjMZEOlfi/oFtgDuYz7k7etEL3PSa6ZEJKSaJ9RWZpOp8eLnMgovAYTj5w==", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.20", + "glob": "^7.2.0" + }, + "bin": { + "out-of-character": "bin/out-of-character.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/out-of-character/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/out-of-character/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "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/out-of-character/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/p-cancelable": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-4.0.1.tgz", + "integrity": "sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/p-map": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", + "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pem-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pem-file/-/pem-file-1.0.1.tgz", + "integrity": "sha512-jIDhaSc4Pk8go+kDYJJ2aS7Bg8Lxvir02NnGp9B1bdJpKiDH680ULl+Duh0jBkz8gV3PywEAWz9XNYqLcd6kVg==", + "license": "MIT" + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/pic-ic": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/pic-ic/-/pic-ic-0.5.4.tgz", + "integrity": "sha512-mPuEysSpqAt7zGb4YP0P3123O0SsdUu8EHfyefnqL8gt9vcAERKM6YhQOiSMKXFPz2EjMdmydD+OF2b2UpXRlQ==", + "license": "Apache-2.0", + "dependencies": { + "bip39": "^3.1.0" + }, + "peerDependencies": { + "@dfinity/agent": "^3.0.0", + "@dfinity/candid": "^3.0.0", + "@dfinity/identity": "^3.0.0", + "@dfinity/principal": "^3.0.0" + } + }, + "node_modules/pic-js-mops": { + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/pic-js-mops/-/pic-js-mops-0.14.8.tgz", + "integrity": "sha512-rcYIJtkbe3fimMVQE+HW0Z3q0WnmglfOBpDECp+Ks8GGKkozaKppbSfD0vucbpNQJVdbZv6G3O27z/ls9tyO5w==", + "license": "Apache-2.0", + "dependencies": { + "bip39": "^3.1.0" + }, + "peerDependencies": { + "@icp-sdk/core": "^4.0.0" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prettier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-motoko": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-motoko/-/prettier-plugin-motoko-0.11.0.tgz", + "integrity": "sha512-V2oUTWbvd/9VZcxyxBNotWWFzkdOaKWSoH09CCr1ozmugHd6jM1zVXDAoxdOCvgUS5BqqHUNRSn5gq9A8XGUvA==", + "license": "Apache-2.0", + "dependencies": { + "out-of-character": "^1.2.1" + }, + "peerDependencies": { + "prettier": "^2.7 || ^3.0" + } + }, + "node_modules/pretty-ms": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz", + "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==", + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/printable-characters": { + "version": "1.0.42", + "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", + "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", + "license": "Unlicense" + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/promisify-child-process": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/promisify-child-process/-/promisify-child-process-4.1.2.tgz", + "integrity": "sha512-APnkIgmaHNJpkAn7k+CrJSi9WMuff5ctYFbD0CO2XIPkM8yO7d/ShouU2clywbpHV/DUsyc4bpJCsNgddNtx4g==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=16.0.0" + } + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/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==", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "license": "MIT" + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "license": "MIT", + "dependencies": { + "commander": "^2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" + } + }, + "node_modules/seek-bzip/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/stream-to-array": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", + "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.1.0" + } + }, + "node_modules/stream-to-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-to-promise/-/stream-to-promise-3.0.0.tgz", + "integrity": "sha512-h+7wLeFiYegOdgTfTxjRsrT7/Op7grnKEIHWgaO1RTHwcwk7xRreMr3S8XpDfDMesSxzgM2V4CxNCFAGo6ssnA==", + "license": "MIT", + "dependencies": { + "any-promise": "~1.3.0", + "end-of-stream": "~1.4.1", + "stream-to-array": "~2.3.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/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==", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "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==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/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==", + "license": "MIT" + }, + "node_modules/string-width-cjs/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "license": "MIT", + "dependencies": { + "is-natural-number": "^4.0.1" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "license": "MIT" + }, + "node_modules/tar": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.6.tgz", + "integrity": "sha512-xqUeu2JAIJpXyvskvU3uvQW8PAmHrtXp2KDuMJwQqW8Sqq0CaZBAQ+dKS3RBXVhU4wC5NjAdKrmh84241gO9cA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/terminal-size": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/terminal-size/-/terminal-size-4.0.0.tgz", + "integrity": "sha512-rcdty1xZ2/BkWa4ANjWRp4JGpda2quksXIHgn5TMjNBPZfwzJIgR68DKfSYiTL+CZWowDX/sbOo5ME/FRURvYQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" + }, + "node_modules/tldts": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.86" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", + "license": "MIT" + }, + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/to-buffer/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unbzip2-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universal-github-app-jwt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.2.0.tgz", + "integrity": "sha512-dncpMpnsKBk0eetwfN8D8OUHGfiDhhJ+mtsbMl+7PfW7mYjiH8LIcqRmYMtzYLgSh47HjfdBtrBwIQ/gizKR3g==", + "license": "MIT", + "dependencies": { + "@types/jsonwebtoken": "^9.0.0", + "jsonwebtoken": "^9.0.2" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "license": "ISC" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "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/wrap-ansi-cjs": { + "name": "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==", + "license": "MIT", + "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/wrap-ansi-cjs/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/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==", + "license": "MIT" + }, + "node_modules/wrap-ansi/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==", + "license": "MIT", + "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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..34e97d5 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "ic-mops": "^2.0.1" + } +} diff --git a/src/CBOR/lib.mo b/src/CBOR/lib.mo index a88b396..cf8ebf0 100644 --- a/src/CBOR/lib.mo +++ b/src/CBOR/lib.mo @@ -1,17 +1,16 @@ -import Buffer "mo:base@0.16.0/Buffer"; -import Blob "mo:base@0.16.0/Blob"; -import Int8 "mo:base@0.16.0/Int8"; -import Int16 "mo:base@0.16.0/Int16"; -import Int32 "mo:base@0.16.0/Int32"; -import Int64 "mo:base@0.16.0/Int64"; -import Option "mo:base@0.16.0/Option"; -import Nat64 "mo:base@0.16.0/Nat64"; -import Result "mo:base@0.16.0/Result"; -import Principal "mo:base@0.16.0/Principal"; - -import CBOR_Types "mo:cbor@4.0.0/Types"; -import CBOR_Encoder "mo:cbor@4.0.0/Encoder"; -import CBOR_Decoder "mo:cbor@4.0.0/Decoder"; +import Blob "mo:core/Blob"; +import Int8 "mo:core/Int8"; +import Int16 "mo:core/Int16"; +import Int32 "mo:core/Int32"; +import Int64 "mo:core/Int64"; +import Option "mo:core/Option"; +import Nat64 "mo:core/Nat64"; +import Result "mo:core/Result"; +import Principal "mo:core/Principal"; + +import CBOR_Types "mo:cbor@4.1.0/Types"; +import CBOR_Encoder "mo:cbor@4.1.0/Encoder"; +import CBOR_Decoder "mo:cbor@4.1.0/Decoder"; import NatX "mo:xtended-numbers/NatX"; import FloatX "mo:xtended-numbers/FloatX"; @@ -27,6 +26,8 @@ module { public type Options = CandidType.Options; + let { Buffer } = Utils; + /// Converts serialized Candid blob to CBOR blob public func encode(blob : Blob, keys : [Text], options : ?Options) : Result { let decoded_res = Candid.decode(blob, keys, options); diff --git a/src/Candid/Blob/CandidUtils.mo b/src/Candid/Blob/CandidUtils.mo index 5f77531..0a9a1d1 100644 --- a/src/Candid/Blob/CandidUtils.mo +++ b/src/Candid/Blob/CandidUtils.mo @@ -1,35 +1,30 @@ -import Array "mo:base@0.16.0/Array"; -import Buffer "mo:base@0.16.0/Buffer"; -import Result "mo:base@0.16.0/Result"; -import Nat32 "mo:base@0.16.0/Nat32"; -import Nat "mo:base@0.16.0/Nat"; -import Iter "mo:base@0.16.0/Iter"; -import Text "mo:base@0.16.0/Text"; -import Order "mo:base@0.16.0/Order"; +import Array "mo:core/Array"; +import Result "mo:core/Result"; +import Nat32 "mo:core/Nat32"; +import Nat "mo:core/Nat"; +import Iter "mo:core/Iter"; +import Text "mo:core/Text"; +import Order "mo:core/Order"; import Itertools "mo:itertools@0.2.2/Iter"; -import Map "mo:map@9.0.1/Map"; +import PureMap "mo:core/pure/Map"; import T "../Types"; -import TrieMap "mo:base@0.16.0/TrieMap"; import Utils "../../Utils"; module { - type TrieMap = TrieMap.TrieMap; type Result = Result.Result; - type Buffer = Buffer.Buffer; + type Buffer = Utils.Buffer.Buffer; type Iter = Iter.Iter; type Hash = Nat32; - type Map = Map.Map; + type Map = PureMap.Map; type Order = Order.Order; type Candid = T.Candid; type CandidType = T.CandidType; type KeyValuePair = T.KeyValuePair; - let { thash } = Map; - public func cmp_fields(a : (Text, Any), b : (Text, Any)) : Order { let hash_a = Utils.hash_record_key(a.0); @@ -136,7 +131,7 @@ module { let field_key = fields[i].0; let field_value = fields[i].1; - let new_key = switch (Map.get(renaming_map, thash, field_key)) { + let new_key = switch (PureMap.get(renaming_map, Text.compare, field_key)) { case (?new_key) new_key; case (_) field_key; }; @@ -164,7 +159,7 @@ module { let field_key = fields[i].0; let field_value = fields[i].1; - let new_key = switch (Map.get(renaming_map, thash, field_key)) { + let new_key = switch (PureMap.get(renaming_map, Text.compare, field_key)) { case (?new_key) new_key; case (_) field_key; }; diff --git a/src/Candid/Blob/Decoder.mo b/src/Candid/Blob/Decoder.mo index dc5dbd9..4ceeffb 100644 --- a/src/Candid/Blob/Decoder.mo +++ b/src/Candid/Blob/Decoder.mo @@ -1,26 +1,25 @@ -import Array "mo:base@0.16.0/Array"; -import Blob "mo:base@0.16.0/Blob"; -import Buffer "mo:base@0.16.0/Buffer"; -import Debug "mo:base@0.16.0/Debug"; -import Result "mo:base@0.16.0/Result"; -import Nat64 "mo:base@0.16.0/Nat64"; -import Int8 "mo:base@0.16.0/Int8"; -import Int32 "mo:base@0.16.0/Int32"; -import Nat8 "mo:base@0.16.0/Nat8"; -import Nat32 "mo:base@0.16.0/Nat32"; -import Int64 "mo:base@0.16.0/Int64"; -import Nat "mo:base@0.16.0/Nat"; -import Int "mo:base@0.16.0/Int"; -import Iter "mo:base@0.16.0/Iter"; -import Principal "mo:base@0.16.0/Principal"; -import Text "mo:base@0.16.0/Text"; -import Order "mo:base@0.16.0/Order"; -import Int16 "mo:base@0.16.0/Int16"; -import TrieMap "mo:base@0.16.0/TrieMap"; -import Option "mo:base@0.16.0/Option"; - -import Map "mo:map@9.0.1/Map"; -import Set "mo:map@9.0.1/Set"; +import Array "mo:core/Array"; +import Blob "mo:core/Blob"; +import Debug "mo:core/Debug"; +import Runtime "mo:core/Runtime"; +import Result "mo:core/Result"; +import Nat64 "mo:core/Nat64"; +import Int8 "mo:core/Int8"; +import Int32 "mo:core/Int32"; +import Nat8 "mo:core/Nat8"; +import Nat32 "mo:core/Nat32"; +import Int64 "mo:core/Int64"; +import Nat "mo:core/Nat"; +import Int "mo:core/Int"; +import Iter "mo:core/Iter"; +import Principal "mo:core/Principal"; +import Text "mo:core/Text"; +import Order "mo:core/Order"; +import Int16 "mo:core/Int16"; +import Option "mo:core/Option"; + +import PureMap "mo:core/pure/Map"; +import PureSet "mo:core/pure/Set"; import ByteUtils "mo:byte-utils@0.1.2"; import T "../Types"; @@ -30,23 +29,18 @@ import CandidUtils "CandidUtils"; module { type Iter = Iter.Iter; type Result = Result.Result; - - type TrieMap = TrieMap.TrieMap; type Candid = T.Candid; type KeyValuePair = T.KeyValuePair; - type Buffer = Buffer.Buffer; + type Buffer = Utils.Buffer.Buffer; type Hash = Nat32; - type Map = Map.Map; - type Set = Set.Set; + type Map = PureMap.Map; + type Set = PureSet.Set; type Order = Order.Order; type CandidType = T.CandidType; type ShallowCandidTypes = T.ShallowCandidTypes; - let { nhash } = Set; - let { n32hash; thash } = Map; - /// Decodes a blob encoded in the candid format into a list of the [Candid](./Types.mo#Candid) type in motoko /// /// ### Inputs @@ -136,13 +130,13 @@ module { public func one_shot(blob : Blob, record_keys : [Text], options : ?T.Options) : Result<[Candid], Text> { - let record_key_map = Map.new(); + var record_key_map = PureMap.empty(); var i = 0; while (i < record_keys.size()) { let key = formatVariantKey(record_keys[i]); let hash = Utils.hash_record_key(key); - ignore Map.put(record_key_map, n32hash, hash, key); + record_key_map := PureMap.add(record_key_map, Nat32.compare, hash, key); i += 1; }; @@ -155,7 +149,7 @@ module { let new_key = formatVariantKey(key_pairs_to_rename[i].1); let hash = Utils.hash_record_key(original_key); - // ignore Map.put(record_key_map, n32hash, hash, new_key); + // record_key_map := PureMap.add(record_key_map, Nat32.compare, hash, new_key); i += 1; }; @@ -195,7 +189,7 @@ module { func read_from_iter(iter : Iter.Iter) : Nat8 { switch (iter.next()) { case (?byte) byte; - case (null) Debug.trap("Unexpected end of data stream"); + case (null) Runtime.trap("Unexpected end of data stream"); }; }; @@ -278,7 +272,7 @@ module { } else if (code == T.TypeCode.Empty) { #Empty; } else { - Debug.trap("code [" # debug_show code # "] does not belong to a primitive type"); + Runtime.trap("code [" # debug_show code # "] does not belong to a primitive type"); }; }; @@ -317,7 +311,7 @@ module { size, func(i : Nat) : (Text, Nat) { let hash = decode_leb128(bytes, state) |> Nat32.fromNat(_); - let field_key = switch (Map.get(record_key_map, n32hash, hash)) { + let field_key = switch (PureMap.get(record_key_map, Nat32.compare, hash)) { case (?field_key) field_key; case (null) debug_show hash; }; @@ -340,7 +334,7 @@ module { #VariantRef(fields); }; } else { - Debug.trap("extract_compound_types(): expected compound type instead found " # debug_show (compound_type_code)); + Runtime.trap("extract_compound_types(): expected compound type instead found " # debug_show (compound_type_code)); }; shallow_type; @@ -349,43 +343,44 @@ module { Array.tabulate(total_compound_types, extract_compound_type); }; - func build_compound_type(compound_types : [ShallowCandidTypes], start_pos : Nat, recursive_types_map : Map) : CandidType { - func _build_compound_type(compound_types : [ShallowCandidTypes], start_pos : Nat, visited : Set, is_recursive_set : Set, recursive_types_map : Map) : CandidType { + func build_compound_type(compound_types : [ShallowCandidTypes], start_pos : Nat, recursive_types_map_param : Map) : (CandidType, Map) { + var recursive_types_map = recursive_types_map_param; + var visited = PureSet.empty(); + var is_recursive_set = PureSet.empty(); + + func _build_compound_type(compound_types : [ShallowCandidTypes], start_pos : Nat) : CandidType { var pos = start_pos; func resolve_field_types((field_key, ref_pos) : (Text, Nat)) : ((Text, CandidType)) { - let visited_size = Set.size(visited); + let saved_visited = visited; let resolved_type : CandidType = if (is_code_primitive_type(Nat8.fromNat(ref_pos))) { code_to_primitive_type(Nat8.fromNat(ref_pos)); } else { - _build_compound_type(compound_types, ref_pos, visited, is_recursive_set, recursive_types_map); - }; - - while (Set.size(visited) > visited_size) { - ignore Set.pop(visited, nhash); + _build_compound_type(compound_types, ref_pos); }; + visited := saved_visited; (field_key, resolved_type); }; - switch (Map.get(recursive_types_map, nhash, pos)) { + switch (PureMap.get(recursive_types_map, Nat.compare, pos)) { case (?candid_type) return candid_type; case (null) {}; }; - if (Set.has(visited, nhash, pos) and not Set.has(is_recursive_set, nhash, pos)) { - ignore Set.put(is_recursive_set, nhash, pos); + if (PureSet.contains(visited, Nat.compare, pos) and not PureSet.contains(is_recursive_set, Nat.compare, pos)) { + is_recursive_set := PureSet.add(is_recursive_set, Nat.compare, pos); return #Recursive(pos); }; - ignore Set.put(visited, nhash, pos); + visited := PureSet.add(visited, Nat.compare, pos); let resolved_compound_type = switch (compound_types.get(pos)) { case (#OptionRef(ref_pos)) { let ref_type = if (is_code_primitive_type(Nat8.fromNat(ref_pos))) { code_to_primitive_type(Nat8.fromNat(ref_pos)); } else { - _build_compound_type(compound_types, ref_pos, visited, is_recursive_set, recursive_types_map); + _build_compound_type(compound_types, ref_pos); }; #Option(ref_type); @@ -394,7 +389,7 @@ module { let ref_type = if (is_code_primitive_type(Nat8.fromNat(ref_pos))) { code_to_primitive_type(Nat8.fromNat(ref_pos)); } else { - _build_compound_type(compound_types, ref_pos, visited, is_recursive_set, recursive_types_map); + _build_compound_type(compound_types, ref_pos); }; #Array(ref_type); }; @@ -408,21 +403,20 @@ module { }; }; - if (Set.has(is_recursive_set, nhash, pos) and not Map.has(recursive_types_map, nhash, pos)) { - ignore Map.put(recursive_types_map, nhash, pos, resolved_compound_type); + if (PureSet.contains(is_recursive_set, Nat.compare, pos) and not PureMap.containsKey(recursive_types_map, Nat.compare, pos)) { + recursive_types_map := PureMap.add(recursive_types_map, Nat.compare, pos, resolved_compound_type); }; resolved_compound_type; }; - let visited = Set.new(); - let is_recursive_set = Set.new(); - - _build_compound_type(compound_types, start_pos, visited, is_recursive_set, recursive_types_map); + let result_type = _build_compound_type(compound_types, start_pos); + (result_type, recursive_types_map); }; - public func build_types(bytes : Blob, state : [var Nat], compound_types : [ShallowCandidTypes], recursive_types_map : Map) : [CandidType] { + public func build_types(bytes : Blob, state : [var Nat], compound_types : [ShallowCandidTypes], recursive_types_map_param : Map) : ([CandidType], Map) { let total_candid_types = decode_leb128(bytes, state); + var recursive_types_map = recursive_types_map_param; let candid_types = Array.tabulate( total_candid_types, @@ -434,7 +428,8 @@ module { primitive_type; } else { let start_pos = decode_leb128(bytes, state); - let compound_type = build_compound_type(compound_types, start_pos, recursive_types_map); + let (compound_type, updated_map) = build_compound_type(compound_types, start_pos, recursive_types_map); + recursive_types_map := updated_map; compound_type; }; @@ -443,7 +438,7 @@ module { }, ); - (candid_types); + (candid_types, recursive_types_map); }; public func skip_compound_types(bytes : Blob, state : [var Nat], total_compound_types : Nat) { @@ -482,7 +477,7 @@ module { i += 1; }; } else { - Debug.trap("code [" # debug_show compound_type_code # "] does not belong to a compound type"); + Runtime.trap("code [" # debug_show compound_type_code # "] does not belong to a compound type"); }; i += 1; @@ -523,13 +518,15 @@ module { return #err("Invalid Magic Number"); }; - let recursive_types_map = Map.new(); + var recursive_types_map = PureMap.empty(); if (not is_types_set) { // extract types from blob let total_compound_types = decode_leb128(bytes, state); let compound_types = extract_compound_types(bytes, state, total_compound_types, record_key_map); - candid_types := build_types(bytes, state, compound_types, recursive_types_map); + let (types, updated_recursive_map) = build_types(bytes, state, compound_types, recursive_types_map); + candid_types := types; + recursive_types_map := updated_recursive_map; } else { // types are set but 'blob_contains_only_values' is not set, @@ -540,7 +537,7 @@ module { }; - let renaming_map = Map.fromIter(options.renameKeys.vals(), Map.thash); + let renaming_map = PureMap.fromIter(options.renameKeys.vals(), Text.compare); // extract values with Candid variant Types decode_candid_values(bytes, candid_types, state, options, renaming_map, recursive_types_map); @@ -895,15 +892,15 @@ module { #Variant(get_renamed_key(renaming_map, variant_key), value); }; case (#Recursive(pos)) { - let recursive_type = switch (Map.get(recursive_map, nhash, pos)) { + let recursive_type = switch (PureMap.get(recursive_map, Nat.compare, pos)) { case (?recursive_type) recursive_type; - case (_) Debug.trap("Recursive type not found"); + case (_) Runtime.trap("Recursive type not found"); }; return decode_value_from_iter(iter, options, renaming_map, recursive_map, recursive_type); }; - case (val) Debug.trap(debug_show (val) # " decoding is not supported"); + case (val) Runtime.trap(debug_show (val) # " decoding is not supported"); }; #ok(value); @@ -911,7 +908,7 @@ module { func get_renamed_key(renaming_map : Map, key : Text) : Text { Option.get( - Map.get(renaming_map, Map.thash, key), + PureMap.get(renaming_map, Text.compare, key), key, ); }; @@ -924,4 +921,10 @@ module { }; }; + // TODO: Performance optimization - Replace Map with List<(Nat, CandidType)> for recursive_types_map + // DeBruijn indices are typically small (0-5 for nesting depth), making linear list scan O(n) much faster + // than Map operations O(log n) + immutable map copying overhead. Building new maps is costly, while + // cons-ing onto a linked list is O(1). For typical recursive type depths, list lookup will outperform + // tree-based map lookup by a significant margin. + }; diff --git a/src/Candid/Blob/Encoder.mo b/src/Candid/Blob/Encoder.mo index 354bd90..24de530 100644 --- a/src/Candid/Blob/Encoder.mo +++ b/src/Candid/Blob/Encoder.mo @@ -1,55 +1,53 @@ -import Array "mo:base@0.16.0/Array"; -import Blob "mo:base@0.16.0/Blob"; -import Buffer "mo:base@0.16.0/Buffer"; +import Array "mo:core/Array"; +import Blob "mo:core/Blob"; import B "mo:buffer"; -import Debug "mo:base@0.16.0/Debug"; -import Result "mo:base@0.16.0/Result"; -import Nat64 "mo:base@0.16.0/Nat64"; -import Int8 "mo:base@0.16.0/Int8"; -import Int32 "mo:base@0.16.0/Int32"; -import Nat8 "mo:base@0.16.0/Nat8"; -import Nat32 "mo:base@0.16.0/Nat32"; -import Nat16 "mo:base@0.16.0/Nat16"; -import Int64 "mo:base@0.16.0/Int64"; -import Nat "mo:base@0.16.0/Nat"; -import Int "mo:base@0.16.0/Int"; -import Iter "mo:base@0.16.0/Iter"; -import Prelude "mo:base@0.16.0/Prelude"; -import Principal "mo:base@0.16.0/Principal"; -import Text "mo:base@0.16.0/Text"; -import Order "mo:base@0.16.0/Order"; -import Option "mo:base@0.16.0/Option"; -import Func "mo:base@0.16.0/Func"; -import Char "mo:base@0.16.0/Char"; -import Int16 "mo:base@0.16.0/Int16"; +import Debug "mo:core/Debug"; +import Runtime "mo:core/Runtime"; +import Result "mo:core/Result"; +import Nat64 "mo:core/Nat64"; +import Int8 "mo:core/Int8"; +import Int32 "mo:core/Int32"; +import Nat8 "mo:core/Nat8"; +import Nat32 "mo:core/Nat32"; +import Nat16 "mo:core/Nat16"; +import Int64 "mo:core/Int64"; +import Nat "mo:core/Nat"; +import Int "mo:core/Int"; +import Iter "mo:core/Iter"; +import Principal "mo:core/Principal"; +import Text "mo:core/Text"; +import Order "mo:core/Order"; +import Option "mo:core/Option"; +import Func "mo:core/Func"; +import Char "mo:core/Char"; +import Int16 "mo:core/Int16"; import Itertools "mo:itertools@0.2.2/Iter"; import PeekableIter "mo:itertools@0.2.2/PeekableIter"; -import Map "mo:map@9.0.1/Map"; +import PureMap "mo:core/pure/Map"; +import Map "mo:core/Map"; import ByteUtils "mo:byte-utils@0.1.2"; import T "../Types"; -import TrieMap "mo:base@0.16.0/TrieMap"; import Utils "../../Utils"; import CandidUtils "CandidUtils"; module { - type TrieMap = TrieMap.TrieMap; type Result = Result.Result; - type Buffer = Buffer.Buffer; + type Buffer = Utils.Buffer.Buffer; type Iter = Iter.Iter; type Hash = Nat32; + type PureMapType = PureMap.Map; type Map = Map.Map; type Order = Order.Order; type Candid = T.Candid; type CandidType = T.CandidType; type KeyValuePair = T.KeyValuePair; - let { thash } = Map; - let { unsigned_leb128; signed_leb128_64 } = Utils; + let { unsigned_leb128; signed_leb128_64; Buffer } = Utils; // public func encode(candid_values : [Candid], options : ?T.Options) : Result { - // let renaming_map = Map.new(); + // let renaming_map = PureMap.empty(); // for ((k, v) in Option.get(options, T.defaultOptions).renameKeys.vals()) { // ignore Map.put(renaming_map, thash, k, v); // }; @@ -71,7 +69,7 @@ module { encode([candid], options); }; - func infer_candid_types(candid_values : [Candid], renaming_map : Map) : Result<[CandidType], Text> { + func infer_candid_types(candid_values : [Candid], renaming_map : PureMapType) : Result<[CandidType], Text> { let buffer = Buffer.Buffer(candid_values.size()); for (candid in candid_values.vals()) { @@ -109,8 +107,6 @@ module { public func one_shot(candid_values : [Candid], _options : ?T.Options) : Result { - let renaming_map = Map.new(); - let compound_type_buffer = Buffer.Buffer(200); let candid_type_buffer = Buffer.Buffer(200); let value_buffer = Buffer.Buffer(400); @@ -119,8 +115,9 @@ module { let options = Option.get(_options, T.defaultOptions); + var renaming_map = PureMap.empty(); for ((k, v) in options.renameKeys.vals()) { - ignore Map.put(renaming_map, thash, k, v); + renaming_map := PureMap.add(renaming_map, Text.compare, k, v); }; var candid_types : [CandidType] = switch (options.types) { @@ -239,15 +236,15 @@ module { candid_type_buffer : Buffer, value_buffer : Buffer, counter : [var Nat], - renaming_map : Map, + renaming_map : PureMapType, ) { assert candid_values.size() == candid_types.size(); // include size of candid values // unsigned_leb128(type_buffer, candid_values.size()); - let unique_compound_type_map = Map.new(); - let recursive_map = Map.new(); + let unique_compound_type_map = Map.empty(); + let recursive_map = PureMap.empty(); var i = 0; @@ -277,9 +274,9 @@ module { candid_type : CandidType, candid_value : Candid, value_buffer : Buffer, - renaming_map : Map, + renaming_map : PureMapType, unique_compound_type_map : Map, - recursive_map : Map, + recursive_map : PureMapType, counter : [var Nat], is_nested_child_of_compound_type : Bool, ) : ?Hash { @@ -357,7 +354,7 @@ module { if (bytes.size() > 0) { switch (bytes[0]) { case (#Nat8(_)) {}; - case (_) return Debug.trap("invalid blob value: expected array of Nat8, got array of " # debug_show bytes[0]); + case (_) return Runtime.trap("invalid blob value: expected array of Nat8, got array of " # debug_show bytes[0]); }; }; ignore encode_value_only( @@ -373,18 +370,18 @@ module { }; case (#Record(record_types) or #Map(record_types), #Record(record_entries) or #Map(record_entries)) { - let record_entry_cache : Map.Map = Utils.create_map(record_entries.size()); + var record_entry_cache = PureMap.empty(); for ((k, v) in record_entries.vals()) { let field_value_key = get_renamed_key(renaming_map, k); - ignore Map.put(record_entry_cache, thash, field_value_key, v); + record_entry_cache := PureMap.add(record_entry_cache, Text.compare, field_value_key, v); }; var i = 0; while (i < record_types.size()) { let field_type = record_types[i].1; let field_type_key = get_renamed_key(renaming_map, record_types[i].0); - let field_value = switch (Map.get(record_entry_cache, Map.thash, field_type_key)) { + let field_value = switch (PureMap.get(record_entry_cache, Text.compare, field_type_key)) { case (?field_value) { // If field type is optional but value isn't, wrap it switch (field_type, field_value) { @@ -402,7 +399,7 @@ module { // Field is missing - if the type is optional, use #Null switch (field_type) { case (#Option(_)) #Null; - case (_) Debug.trap("unable to find field key in field types: " # debug_show field_type_key # "in " # debug_show record_entries); + case (_) Runtime.trap("unable to find field key in field types: " # debug_show field_type_key # "in " # debug_show record_entries); }; }; }; @@ -476,13 +473,13 @@ module { let variant_key = get_renamed_key(renaming_map, variant.0); let variant_value = variant.1; let variant_index_res = Array.indexOf<(Text, CandidType)>( - (variant_key, #Empty), variant_types, func((a, _) : (Text, CandidType), (b, _) : (Text, CandidType)) : Bool = a == b, + (variant_key, #Empty), ); let variant_index = switch (variant_index_res) { case (?index) index; - case (_) Debug.trap("unable to find variant key in variant types"); + case (_) Runtime.trap("unable to find variant key in variant types"); }; unsigned_leb128(value_buffer, variant_index); ignore encode_value_only( @@ -496,7 +493,7 @@ module { true, ); }; - case (_) Debug.trap("invalid (type, value) pair for encode_value_only: " # debug_show { candid_type; candid_value }); + case (_) Runtime.trap("invalid (type, value) pair for encode_value_only: " # debug_show { candid_type; candid_value }); }; } else { @@ -533,7 +530,10 @@ module { ByteUtils.Buffer.LE.addInt64(value_buffer, i64); }; case (#Float, #Float(f64)) { - ByteUtils.Buffer.LE.addFloat(value_buffer, f64); + let bytes = ByteUtils.LE.fromFloat(f64); + for (byte in bytes.vals()) { + value_buffer.add(byte); + }; }; case (#Bool, #Bool(b)) { value_buffer.add(if (b) (1) else (0)); @@ -559,7 +559,7 @@ module { i += 1; }; }; - case (_) Debug.trap("unknown (type, value) pair for encode_value_only: " # debug_show (candid_type, candid_value)); + case (_) Runtime.trap("unknown (type, value) pair for encode_value_only: " # debug_show (candid_type, candid_value)); }; }; null; @@ -604,7 +604,7 @@ module { case (#Null) ref_candid_type_buffer.add(T.TypeCode.Null); case (#Empty) ref_candid_type_buffer.add(T.TypeCode.Empty); - case (_) Debug.trap("encode_primitive_type_only(): unknown primitive type " # debug_show candid_type); + case (_) Runtime.trap("encode_primitive_type_only(): unknown primitive type " # debug_show candid_type); }; }; @@ -612,13 +612,13 @@ module { candid_type : CandidType, compound_type_buffer : Buffer, candid_type_buffer : Buffer, - renaming_map : Map, + renaming_map : PureMapType, unique_compound_type_map : Map, counter : [var Nat], is_nested_child_of_compound_type : Bool, ) { let type_info = get_type_info(candid_type); - let compound_type_exists = Map.has(unique_compound_type_map, thash, type_info); + let compound_type_exists = Map.containsKey(unique_compound_type_map, Text.compare, type_info); if (compound_type_exists) return; // Debug.print("encode_compound_type_only(): " # debug_show type_info); switch (candid_type) { @@ -642,9 +642,9 @@ module { if (opt_type_is_compound) { compound_type_buffer.add(T.TypeCode.Option); let opt_type_info = get_type_info(opt_type); - let pos = switch (Map.get(unique_compound_type_map, thash, opt_type_info)) { + let pos = switch (Map.get(unique_compound_type_map, Text.compare, opt_type_info)) { case (?pos) pos; - case (_) Debug.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); + case (_) Runtime.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); }; unsigned_leb128(compound_type_buffer, pos); }; @@ -670,9 +670,9 @@ module { if (arr_type_is_compound) { compound_type_buffer.add(T.TypeCode.Array); let arr_type_info = get_type_info(arr_type); - let pos = switch (Map.get(unique_compound_type_map, thash, arr_type_info)) { + let pos = switch (Map.get(unique_compound_type_map, Text.compare, arr_type_info)) { case (?pos) pos; - case (_) Debug.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); + case (_) Runtime.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); }; unsigned_leb128(compound_type_buffer, pos); }; @@ -730,9 +730,9 @@ module { if (value_type_is_compound) { let value_type_info = get_type_info(field_type); - let pos = switch (Map.get(unique_compound_type_map, thash, value_type_info)) { + let pos = switch (Map.get(unique_compound_type_map, Text.compare, value_type_info)) { case (?pos) pos; - case (_) Debug.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); + case (_) Runtime.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); }; unsigned_leb128(compound_type_buffer, pos); } else { @@ -797,9 +797,9 @@ module { if (variant_type_is_compound) { let variant_type_info = get_type_info(variant_type); - let pos = switch (Map.get(unique_compound_type_map, thash, variant_type_info)) { + let pos = switch (Map.get(unique_compound_type_map, Text.compare, variant_type_info)) { case (?pos) pos; - case (_) Debug.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); + case (_) Runtime.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); }; unsigned_leb128(compound_type_buffer, pos); } else { @@ -815,10 +815,10 @@ module { }; }; - case (_) Debug.trap("encode_compound_type_only(): unknown compound type " # debug_show candid_type); + case (_) Runtime.trap("encode_compound_type_only(): unknown compound type " # debug_show candid_type); }; - ignore Map.put(unique_compound_type_map, thash, type_info, counter[C.COUNTER.COMPOUND_TYPE]); + Map.add(unique_compound_type_map, Text.compare, type_info, counter[C.COUNTER.COMPOUND_TYPE]); counter[C.COUNTER.COMPOUND_TYPE] += 1; }; @@ -827,7 +827,7 @@ module { candid_type : CandidType, compound_type_buffer : Buffer, candid_type_buffer : Buffer, - renaming_map : Map, + renaming_map : PureMapType, unique_compound_type_map : Map, counter : [var Nat], is_nested_child_of_compound_type : Bool, @@ -846,9 +846,9 @@ module { // Add compound type reference to primitive type buffer for top-level types if (not is_nested_child_of_compound_type) { let type_info = get_type_info(candid_type); - let pos = switch (Map.get(unique_compound_type_map, thash, type_info)) { + let pos = switch (Map.get(unique_compound_type_map, Text.compare, type_info)) { case (?pos) pos; - case (_) Debug.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); + case (_) Runtime.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); }; unsigned_leb128(candid_type_buffer, pos); }; @@ -878,9 +878,9 @@ module { compound_type_buffer : Buffer, candid_type_buffer : Buffer, value_buffer : Buffer, - renaming_map : Map, + renaming_map : PureMapType, unique_compound_type_map : Map, - recursive_map : Map, + recursive_map : PureMapType, is_nested_child_of_compound_type : Bool, ignore_type : Bool, ) { @@ -940,7 +940,10 @@ module { }; case (#Float, #Float(f64)) { ref_candid_type_buffer.add(T.TypeCode.Float); - ByteUtils.Buffer.LE.addFloat(value_buffer, f64); + let bytes = ByteUtils.LE.fromFloat(f64); + for (byte in bytes.vals()) { + value_buffer.add(byte); + }; }; case (#Bool, #Bool(b)) { ref_candid_type_buffer.add(T.TypeCode.Bool); @@ -978,7 +981,7 @@ module { }; }; - case (_) Debug.trap("unknown (type, value) pair: " # debug_show (candid_type, candid_value)); + case (_) Runtime.trap("unknown (type, value) pair: " # debug_show (candid_type, candid_value)); }; }; @@ -988,9 +991,9 @@ module { compound_type_buffer : Buffer, candid_type_buffer : Buffer, value_buffer : Buffer, - renaming_map : Map, + renaming_map : PureMapType, unique_compound_type_map : Map, - recursive_map : Map, + recursive_map : PureMapType, counter : [var Nat], is_nested_child_of_compound_type : Bool, _type_exists : Bool, @@ -1008,7 +1011,7 @@ module { let type_info = get_type_info(candid_type); // type_exists_in_compound_type_sequence - let type_exists = _type_exists or Map.has(unique_compound_type_map, thash, type_info); + let type_exists = _type_exists or Map.containsKey(unique_compound_type_map, Text.compare, type_info); switch (candid_type, candid_value) { @@ -1060,9 +1063,9 @@ module { // let prev_start = get_prev_compound_type_start_index(compound_type_buffer); compound_type_buffer.add(T.TypeCode.Option); let opt_type_info = get_type_info(opt_type); - let pos = switch (Map.get(unique_compound_type_map, thash, opt_type_info)) { + let pos = switch (Map.get(unique_compound_type_map, Text.compare, opt_type_info)) { case (?pos) pos; - case (_) Debug.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); + case (_) Runtime.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); }; unsigned_leb128(compound_type_buffer, pos); }; @@ -1094,9 +1097,9 @@ module { ) { compound_type_buffer.add(T.TypeCode.Option); let opt_type_info = get_type_info(opt_type); - let pos = switch (Map.get(unique_compound_type_map, thash, opt_type_info)) { + let pos = switch (Map.get(unique_compound_type_map, Text.compare, opt_type_info)) { case (?pos) pos; - case (_) Debug.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info, opt_type)); + case (_) Runtime.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info, opt_type)); }; unsigned_leb128(compound_type_buffer, pos); }; @@ -1150,9 +1153,9 @@ module { compound_type_buffer.add(T.TypeCode.Array); let arr_type_info = get_type_info(arr_type); - let pos = switch (Map.get(unique_compound_type_map, thash, arr_type_info)) { + let pos = switch (Map.get(unique_compound_type_map, Text.compare, arr_type_info)) { case (?pos) pos; - case (_) Debug.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info, arr_type)); + case (_) Runtime.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info, arr_type)); }; unsigned_leb128(compound_type_buffer, pos); @@ -1198,7 +1201,7 @@ module { if (bytes.size() > 0) { switch (bytes[0]) { case (#Nat8(_)) {}; - case (_) return Debug.trap("invalid blob value: expected array of Nat8, got array of " # debug_show bytes[0]); + case (_) return Runtime.trap("invalid blob value: expected array of Nat8, got array of " # debug_show bytes[0]); }; }; @@ -1227,11 +1230,11 @@ module { record_entries.size() + 3; }; - let record_entry_cache : Map.Map = Utils.create_map(cache_size); + var record_entry_cache = PureMap.empty(); for ((k, v) in record_entries.vals()) { let field_value_key = get_renamed_key(renaming_map, k); - ignore Map.put(record_entry_cache, thash, field_value_key, v); + record_entry_cache := PureMap.add(record_entry_cache, Text.compare, field_value_key, v); }; var i = 0; @@ -1240,7 +1243,7 @@ module { let field_type_key = get_renamed_key(renaming_map, record_types[i].0); - let field_value = switch (Map.get(record_entry_cache, Map.thash, field_type_key)) { + let field_value = switch (PureMap.get(record_entry_cache, Text.compare, field_type_key)) { case (?field_value) { // If field type is optional but value isn't, wrap it switch (field_type, field_value) { @@ -1258,7 +1261,7 @@ module { // Field is missing - if the type is optional, use #Null switch (field_type) { case (#Option(_)) #Null; - case (_) Debug.trap("unable to find field key in field types: " # debug_show field_type_key # "in " # debug_show record_entries); + case (_) Runtime.trap("unable to find field key in field types: " # debug_show field_type_key # "in " # debug_show record_entries); }; }; }; @@ -1303,9 +1306,9 @@ module { if (value_type_is_compound) { let value_type_info = get_type_info(field_type); - let pos = switch (Map.get(unique_compound_type_map, thash, value_type_info)) { + let pos = switch (Map.get(unique_compound_type_map, Text.compare, value_type_info)) { case (?pos) pos; - case (_) Debug.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info, field_type)); + case (_) Runtime.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info, field_type)); }; unsigned_leb128(compound_type_buffer, pos); @@ -1393,14 +1396,14 @@ module { let variant_value = variant.1; let variant_index_res = Array.indexOf<(Text, CandidType)>( - (variant_key, #Empty), // attach #Empty variant type to satisfy the type checker variant_types, func((a, _) : (Text, CandidType), (b, _) : (Text, CandidType)) : Bool = a == b, + (variant_key, #Empty), // attach #Empty variant type to satisfy the type checker ); let variant_index = switch (variant_index_res) { case (?index) index; - case (_) Debug.trap("unable to find variant key in variant types"); + case (_) Runtime.trap("unable to find variant key in variant types"); }; var i = 0; @@ -1456,9 +1459,9 @@ module { if (variant_type_is_compound) { let variant_type_info = get_type_info(variant_type); - let pos = switch (Map.get(unique_compound_type_map, thash, variant_type_info)) { + let pos = switch (Map.get(unique_compound_type_map, Text.compare, variant_type_info)) { case (?pos) pos; - case (_) Debug.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); + case (_) Runtime.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); }; unsigned_leb128(compound_type_buffer, pos); } else { @@ -1476,21 +1479,21 @@ module { }; - case (_) Debug.trap("invalid (type, value) pair: " # debug_show { candid_type; candid_value }); + case (_) Runtime.trap("invalid (type, value) pair: " # debug_show { candid_type; candid_value }); }; if (not type_exists) { var pos = counter[C.COUNTER.COMPOUND_TYPE]; counter[C.COUNTER.COMPOUND_TYPE] += 1; - ignore Map.put(unique_compound_type_map, thash, type_info, pos); + Map.add(unique_compound_type_map, Text.compare, type_info, pos); }; // if it is the top level parent and not one of the nested children if (not is_nested_child_of_compound_type) { - let pos = switch (Map.get(unique_compound_type_map, thash, type_info)) { + let pos = switch (Map.get(unique_compound_type_map, Text.compare, type_info)) { case (?pos) pos; - case (_) Debug.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); + case (_) Runtime.trap("unable to find compound type pos to store in primitive type sequence for " # debug_show (type_info)); }; unsigned_leb128(candid_type_buffer, pos); }; @@ -1502,9 +1505,9 @@ module { compound_type_buffer : Buffer, candid_type_buffer : Buffer, value_buffer : Buffer, - renaming_map : Map, + renaming_map : PureMapType, unique_compound_type_map : Map, - recursive_map : Map, + recursive_map : PureMapType, counter : [var Nat], is_nested_child_of_compound_type : Bool, ignore_type : Bool, @@ -1586,7 +1589,7 @@ module { key : ?Text; }; - func to_candid_types(candid : Candid, renaming_map : Map) : (InternalCandidTypes) { + func to_candid_types(candid : Candid, renaming_map : PureMapType) : (InternalCandidTypes) { switch (candid) { case (#Nat(_)) (#Nat); case (#Nat8(_)) (#Nat8); @@ -1727,7 +1730,7 @@ module { }; func to_candid_record_field_type(node : CandidTypeNode) : (Text, CandidType) { - let ?key = node.key else return Debug.trap("to_candid_record_field_type: key is null"); + let ?key = node.key else return Runtime.trap("to_candid_record_field_type: key is null"); return (key, node.type_); }; @@ -1792,7 +1795,7 @@ module { // If we have multiple records, merge their fields let merged_type = if (has_records and all_records.size() > 1) { - let field_map = Map.new(); // key -> (type, height, count) + var field_map = PureMap.empty(); // key -> (type, height, count) var max_height = 0; for (record_fields in all_records.vals()) { @@ -1800,29 +1803,29 @@ module { let field_depth = get_type_depth(field_type); max_height := Nat.max(max_height, field_depth); - switch (Map.get(field_map, thash, field_key)) { + switch (PureMap.get(field_map, Text.compare, field_key)) { case (?existing) { let (existing_type, existing_height, count) = existing; // Choose better type if (is_better_type(field_type, field_depth, existing_type, existing_height)) { - ignore Map.put(field_map, thash, field_key, (field_type, field_depth, count + 1)); + field_map := PureMap.add(field_map, Text.compare, field_key, (field_type, field_depth, count + 1)); } else { - ignore Map.put(field_map, thash, field_key, (existing_type, existing_height, count + 1)); + field_map := PureMap.add(field_map, Text.compare, field_key, (existing_type, existing_height, count + 1)); }; }; case (null) { - ignore Map.put(field_map, thash, field_key, (field_type, field_depth, 1)); + field_map := PureMap.add(field_map, Text.compare, field_key, (field_type, field_depth, 1)); }; }; }; }; // Build merged record type, wrapping optional fields - let merged_fields = Buffer.Buffer<(Text, CandidType)>(Map.size(field_map)); + let merged_fields = Buffer.Buffer<(Text, CandidType)>(PureMap.size(field_map)); let total_records = all_records.size(); - for ((field_key, (field_type, field_height, count)) in Map.entries(field_map)) { + for ((field_key, (field_type, field_height, count)) in PureMap.entries(field_map)) { // If field doesn't appear in all records, make it optional let final_type = if (count < total_records) { switch (field_type) { @@ -1950,28 +1953,28 @@ module { if (variants.size() > 0) { // Merge variant types with the same key, choosing the better (more specific) type let merged_variants = Buffer.Buffer<(Text, CandidType)>(variants.size()); - let variant_map = Map.new(); // key -> (type, height) + var variant_map = PureMap.empty(); // key -> (type, height) for ((key, variant_type) in variants.vals()) { - switch (Map.get(variant_map, thash, key)) { + switch (PureMap.get(variant_map, Text.compare, key)) { case (?existing) { let (existing_type, existing_height) = existing; let variant_depth = get_type_depth(variant_type); // Choose the better type if (is_better_type(variant_type, variant_depth, existing_type, existing_height)) { - ignore Map.put(variant_map, thash, key, (variant_type, variant_depth)); + variant_map := PureMap.add(variant_map, Text.compare, key, (variant_type, variant_depth)); }; }; case (null) { let variant_depth = get_type_depth(variant_type); - ignore Map.put(variant_map, thash, key, (variant_type, variant_depth)); + variant_map := PureMap.add(variant_map, Text.compare, key, (variant_type, variant_depth)); }; }; }; // Convert map back to array - for ((key, (variant_type, _)) in Map.entries(variant_map)) { + for ((key, (variant_type, _)) in PureMap.entries(variant_map)) { merged_variants.add((key, variant_type)); }; @@ -2116,7 +2119,7 @@ module { func order_candid_types_by_height_bfs(rows : Buffer<[InternalCandidTypeNode]>) { label while_loop while (rows.size() > 0) { - let candid_values = Buffer.last(rows) else return Prelude.unreachable(); + let ?candid_values = Buffer.last(rows) else return Runtime.unreachable(); let buffer = Buffer.Buffer(8); var has_compound_type = false; @@ -2189,8 +2192,8 @@ module { }; }; - func get_renamed_key(renaming_map : Map, key : Text) : Text { - switch (Map.get(renaming_map, thash, key)) { + func get_renamed_key(renaming_map : PureMapType, key : Text) : Text { + switch (PureMap.get(renaming_map, Text.compare, key)) { case (?v) v; case (_) key; }; diff --git a/src/Candid/Blob/RepIndyHash.mo b/src/Candid/Blob/RepIndyHash.mo index 552e189..bdfa807 100644 --- a/src/Candid/Blob/RepIndyHash.mo +++ b/src/Candid/Blob/RepIndyHash.mo @@ -1,18 +1,18 @@ -import Array "mo:base@0.16.0/Array"; -import Blob "mo:base@0.16.0/Blob"; -import Buffer "mo:base@0.16.0/Buffer"; -import Debug "mo:base@0.16.0/Debug"; -import Nat64 "mo:base@0.16.0/Nat64"; -import Int8 "mo:base@0.16.0/Int8"; -import Int32 "mo:base@0.16.0/Int32"; -import Nat8 "mo:base@0.16.0/Nat8"; -import Nat32 "mo:base@0.16.0/Nat32"; -import Nat16 "mo:base@0.16.0/Nat16"; -import Int64 "mo:base@0.16.0/Int64"; -import Nat "mo:base@0.16.0/Nat"; -import Principal "mo:base@0.16.0/Principal"; -import Text "mo:base@0.16.0/Text"; -import Int16 "mo:base@0.16.0/Int16"; +import Array "mo:core/Array"; +import Blob "mo:core/Blob"; +import Debug "mo:core/Debug"; +import Runtime "mo:core/Runtime"; +import Nat64 "mo:core/Nat64"; +import Int8 "mo:core/Int8"; +import Int32 "mo:core/Int32"; +import Nat8 "mo:core/Nat8"; +import Nat32 "mo:core/Nat32"; +import Nat16 "mo:core/Nat16"; +import Int64 "mo:core/Int64"; +import Nat "mo:core/Nat"; +import Principal "mo:core/Principal"; +import Text "mo:core/Text"; +import Int16 "mo:core/Int16"; import T "../Types"; import Utils "../../Utils"; @@ -21,9 +21,9 @@ import Sha256 "mo:sha2@0.1.6/Sha256"; import ByteUtils "mo:byte-utils@0.1.2"; module { - type Buffer = Buffer.Buffer; + type Buffer = Utils.Buffer.Buffer; - let { ReusableBuffer; unsigned_leb128; signed_leb128_64 } = Utils; + let { ReusableBuffer; unsigned_leb128; signed_leb128_64; Buffer } = Utils; public func hash(candid_value : T.Candid) : Blob { // let buffer = ReusableBuffer(100); @@ -69,7 +69,10 @@ module { }; case (#Float(f64)) { - ByteUtils.Buffer.LE.addFloat(buffer, f64); + let bytes = ByteUtils.LE.fromFloat(f64); + for (byte in bytes.vals()) { + buffer.add(byte); + }; }; case (#Bool(b)) { buffer.add(if (b) (1) else (0)); @@ -131,7 +134,7 @@ module { let value_hash = candid_hash(buffer, sha256, unwrapped_value); let concatenated = Blob.fromArray( - Array.append( + Array.concat( Blob.toArray(key_hash), Blob.toArray(value_hash), ) @@ -140,9 +143,9 @@ module { hashes.add(concatenated); }; - hashes.sort(Blob.compare); + let sorted_hashes = Array.sort(hashes.toArray(), Blob.compare); - for (hash in hashes.vals()) { + for (hash in sorted_hashes.vals()) { let hash_bytes = Blob.toArray(hash); for (byte in hash_bytes.vals()) { buffer.add(byte); @@ -150,7 +153,7 @@ module { }; }; - case (candid) Debug.trap("oops: " # debug_show (candid)); + case (candid) Runtime.trap("oops: " # debug_show (candid)); }; sha256.writeIter(buffer.vals()); diff --git a/src/Candid/Blob/TypedSerializer.mo b/src/Candid/Blob/TypedSerializer.mo index 5a01a2c..14ac114 100644 --- a/src/Candid/Blob/TypedSerializer.mo +++ b/src/Candid/Blob/TypedSerializer.mo @@ -1,20 +1,19 @@ -import Array "mo:base@0.16.0/Array"; -import Blob "mo:base@0.16.0/Blob"; -import Buffer "mo:base@0.16.0/Buffer"; -import Result "mo:base@0.16.0/Result"; -import Nat64 "mo:base@0.16.0/Nat64"; -import Nat8 "mo:base@0.16.0/Nat8"; -import Nat32 "mo:base@0.16.0/Nat32"; -import Nat "mo:base@0.16.0/Nat"; -import Iter "mo:base@0.16.0/Iter"; -import Text "mo:base@0.16.0/Text"; -import Order "mo:base@0.16.0/Order"; -import TrieMap "mo:base@0.16.0/TrieMap"; -import Option "mo:base@0.16.0/Option"; -import Debug "mo:base@0.16.0/Debug"; - -import Map "mo:map@9.0.1/Map"; -import Set "mo:map@9.0.1/Set"; +import Array "mo:core/Array"; +import Blob "mo:core/Blob"; +import Result "mo:core/Result"; +import Nat64 "mo:core/Nat64"; +import Nat8 "mo:core/Nat8"; +import Nat32 "mo:core/Nat32"; +import Nat "mo:core/Nat"; +import Iter "mo:core/Iter"; +import Text "mo:core/Text"; +import Order "mo:core/Order"; +import Option "mo:core/Option"; +import Debug "mo:core/Debug"; + +import PureMap "mo:core/pure/Map"; +import Set "mo:core/pure/Set"; +import Map "mo:core/Map"; import ByteUtils "mo:byte-utils@0.1.2"; import T "../Types"; @@ -28,22 +27,19 @@ module TypedSerializer { type Iter = Iter.Iter; type Result = Result.Result; - - type TrieMap = TrieMap.TrieMap; type Candid = T.Candid; type KeyValuePair = T.KeyValuePair; - type Buffer = Buffer.Buffer; + type Buffer = Utils.Buffer.Buffer; type Hash = Nat32; - type Map = Map.Map; + type Map = PureMap.Map; type Set = Set.Set; type Order = Order.Order; type CandidType = T.CandidType; type ShallowCandidTypes = T.ShallowCandidTypes; - let { n32hash; thash } = Map; - let { nhash } = Set; + let { Buffer } = Utils; // Constants let C = { @@ -129,7 +125,7 @@ module TypedSerializer { // Only encode the types, not the values var i = 0; - let unique_compound_type_map = Map.new(); + let unique_compound_type_map = Map.empty(); while (i < candid_types.size()) { Encoder.encode_type_only( @@ -217,11 +213,11 @@ module TypedSerializer { Buffer.toArray(buffer); }; - func is_map_equal(map1 : Map, map2 : Map, hasher : Map.HashUtils, is_value_equal : (V, V) -> Bool) : Bool { - if (Map.size(map1) != Map.size(map2)) return false; + func is_map_equal(map1 : Map, map2 : Map, compare : (K, K) -> Order.Order, is_value_equal : (V, V) -> Bool) : Bool { + if (PureMap.size(map1) != PureMap.size(map2)) return false; - for ((k, v) in Map.entries(map1)) { - switch (Map.get(map2, hasher, k)) { + for ((k, v) in PureMap.entries(map1)) { + switch (PureMap.get(map2, compare, k)) { case (?v2) if (is_value_equal(v, v2)) {}; case (_) return false; }; @@ -234,8 +230,8 @@ module TypedSerializer { if (self.encoder_candid_types != other.encoder_candid_types) return false; if (self.decoder_candid_types != other.decoder_candid_types) return false; if (self.encoded_type_header != other.encoded_type_header) return false; - if (not is_map_equal(self.renaming_map, other.renaming_map, thash, Text.equal)) return false; - if (not is_map_equal(self.record_key_map, other.record_key_map, n32hash, Text.equal)) return false; + if (not is_map_equal(self.renaming_map, other.renaming_map, Text.compare, Text.equal)) return false; + if (not is_map_equal(self.record_key_map, other.record_key_map, Nat32.compare, Text.equal)) return false; if (self.options != other.options) return false; if (self.compound_types != other.compound_types) return false; @@ -243,7 +239,7 @@ module TypedSerializer { func candid_type_equal(t1 : CandidType, t2 : CandidType) : Bool { t1 == t2; }; - if (not is_map_equal(self.recursive_types_map, other.recursive_types_map, Map.nhash, candid_type_equal)) return false; + if (not is_map_equal(self.recursive_types_map, other.recursive_types_map, Nat.compare, candid_type_equal)) return false; true; }; @@ -254,11 +250,11 @@ module TypedSerializer { # " encoder_candid_types: " # debug_show (self.encoder_candid_types) # "\n" # " decoder_candid_types: " # debug_show (self.decoder_candid_types) # "\n" # " encoded_type_header: " # debug_show (self.encoded_type_header) # "\n" - # " renaming_map: " # debug_show (Map.toArray(self.renaming_map)) # "\n" - # " record_key_map: " # debug_show (Map.toArray(self.record_key_map)) # "\n" + # " renaming_map: " # debug_show (Iter.toArray(PureMap.entries(self.renaming_map))) # "\n" + # " record_key_map: " # debug_show (Iter.toArray(PureMap.entries(self.record_key_map))) # "\n" # " options: " # debug_show (self.options) # "\n" # " compound_types: " # debug_show (self.compound_types) # "\n" - # " recursive_types_map: " # debug_show (Map.toArray(self.recursive_types_map)) # "\n" + # " recursive_types_map: " # debug_show (Iter.toArray(PureMap.entries(self.recursive_types_map))) # "\n" # "}"; }; @@ -266,9 +262,9 @@ module TypedSerializer { public func new(_candid_types : [CandidType], _options : ?T.Options) : TypedSerializer { let options = Option.get(_options, T.defaultOptions); - let renaming_map = Map.new(); + var renaming_map = PureMap.empty(); for ((k, v) in options.renameKeys.vals()) { - ignore Map.put(renaming_map, thash, k, v); + renaming_map := PureMap.add(renaming_map, Text.compare, k, v); }; // Encoder types: original types that will use renaming_map during encoding @@ -305,14 +301,14 @@ module TypedSerializer { }; let record_keys = Buffer.toArray(record_keys_buffer); - let record_key_map = Map.new(); + var record_key_map = PureMap.empty(); var i = 0; while (i < record_keys.size()) { let key = formatVariantKey(record_keys[i]); let hash = Utils.hash_record_key(key); - ignore Map.put(record_key_map, n32hash, hash, key); + record_key_map := PureMap.add(record_key_map, Nat32.compare, hash, key); i += 1; }; @@ -325,7 +321,7 @@ module TypedSerializer { let new_key = formatVariantKey(key_pairs_to_rename[j].1); let hash = Utils.hash_record_key(original_key); - ignore Map.put(record_key_map, n32hash, hash, new_key); + record_key_map := PureMap.add(record_key_map, Nat32.compare, hash, new_key); j += 1; }; @@ -342,7 +338,7 @@ module TypedSerializer { record_key_map; options; compound_types = []; // Will be populated if needed - recursive_types_map = Map.new(); // Initialize empty map + recursive_types_map = PureMap.empty(); // Initialize empty map } : TypedSerializer; }; @@ -350,17 +346,17 @@ module TypedSerializer { public func fromBlob(blob : Blob, record_keys : [Text], _options : ?T.Options) : TypedSerializer { let options = Option.get(_options, T.defaultOptions); - let record_key_map = Map.new(); + var record_key_map = PureMap.empty(); var i = 0; while (i < record_keys.size()) { let key = formatVariantKey(record_keys[i]); let hash = Utils.hash_record_key(key); - ignore Map.put(record_key_map, n32hash, hash, key); + record_key_map := PureMap.add(record_key_map, Nat32.compare, hash, key); i += 1; }; - let renaming_map = Map.new(); + var renaming_map = PureMap.empty(); ignore do ? { let key_pairs_to_rename = options.renameKeys; @@ -372,7 +368,7 @@ module TypedSerializer { let hash = Utils.hash_record_key(original_key); - ignore Map.put(renaming_map, thash, original_key, new_key); + renaming_map := PureMap.add(renaming_map, Text.compare, original_key, new_key); j += 1; }; @@ -386,8 +382,8 @@ module TypedSerializer { let total_compound_types = decode_leb128(bytes, state); let compound_types = Decoder.extract_compound_types(bytes, state, total_compound_types, record_key_map); - let recursive_types_map = Map.new(); - let extracted_candid_types = Decoder.build_types(bytes, state, compound_types, recursive_types_map); + let initial_recursive_types_map = PureMap.empty(); + let (extracted_candid_types, recursive_types_map) = Decoder.build_types(bytes, state, compound_types, initial_recursive_types_map); let type_header_size = state[C.BYTES_INDEX]; let encoded_type_header = Array.tabulate(type_header_size, func(i : Nat) : Nat8 = blob.get(i)); @@ -415,9 +411,9 @@ module TypedSerializer { }; let value_buffer = Buffer.Buffer(400); - let recursive_map = Map.new(); + let recursive_map = PureMap.empty(); let counter = [var 0]; - let unique_compound_type_map = Map.new(); + let unique_compound_type_map = Map.empty(); var i = 0; while (i < candid_values.size()) { @@ -436,7 +432,7 @@ module TypedSerializer { #ok( Blob.fromArray( - Array.append( + Array.concat( self.encoded_type_header, Buffer.toArray(value_buffer), ) diff --git a/src/Candid/ICRC3Value.mo b/src/Candid/ICRC3Value.mo index 9364a71..6fd3761 100644 --- a/src/Candid/ICRC3Value.mo +++ b/src/Candid/ICRC3Value.mo @@ -1,14 +1,15 @@ -import Array "mo:base@0.16.0/Array"; -import Nat8 "mo:base@0.16.0/Nat8"; -import Nat16 "mo:base@0.16.0/Nat16"; -import Nat64 "mo:base@0.16.0/Nat64"; -import Nat32 "mo:base@0.16.0/Nat32"; -import Int8 "mo:base@0.16.0/Int8"; -import Int16 "mo:base@0.16.0/Int16"; -import Int64 "mo:base@0.16.0/Int64"; -import Int32 "mo:base@0.16.0/Int32"; -import Debug "mo:base@0.16.0/Debug"; -import Principal "mo:base@0.16.0/Principal"; +import Array "mo:core/Array"; +import Nat8 "mo:core/Nat8"; +import Nat16 "mo:core/Nat16"; +import Nat64 "mo:core/Nat64"; +import Nat32 "mo:core/Nat32"; +import Int8 "mo:core/Int8"; +import Int16 "mo:core/Int16"; +import Int64 "mo:core/Int64"; +import Int32 "mo:core/Int32"; +import Debug "mo:core/Debug"; +import Runtime "mo:core/Runtime"; +import Principal "mo:core/Principal"; import T "Types"; @@ -48,10 +49,10 @@ module { }, ) ); - case (#Bool(_) or #Option(_) or #Variant(_) or #Tuple(_)) Debug.trap(debug_show candid # " not suppported in ICRC3Value"); - case (#Empty) Debug.trap("Empty not suppported in ICRC3Value"); - case (#Float(f)) Debug.trap("Float not suppported in ICRC3Value"); - case (#Null) Debug.trap("Null not suppported in ICRC3Value"); + case (#Bool(_) or #Option(_) or #Variant(_) or #Tuple(_)) Runtime.trap(debug_show candid # " not suppported in ICRC3Value"); + case (#Empty) Runtime.trap("Empty not suppported in ICRC3Value"); + case (#Float(f)) Runtime.trap("Float not suppported in ICRC3Value"); + case (#Null) Runtime.trap("Null not suppported in ICRC3Value"); }; diff --git a/src/Candid/Text/Parser/Array.mo b/src/Candid/Text/Parser/Array.mo index 6a8b08a..eaa98c4 100644 --- a/src/Candid/Text/Parser/Array.mo +++ b/src/Candid/Text/Parser/Array.mo @@ -1,4 +1,4 @@ -import List "mo:base@0.16.0/List"; +import List "mo:core/pure/List"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; diff --git a/src/Candid/Text/Parser/Blob.mo b/src/Candid/Text/Parser/Blob.mo index 31222e3..ed9bba2 100644 --- a/src/Candid/Text/Parser/Blob.mo +++ b/src/Candid/Text/Parser/Blob.mo @@ -1,6 +1,6 @@ -import Blob "mo:base@0.16.0/Blob"; -import Iter "mo:base@0.16.0/Iter"; -import List "mo:base@0.16.0/List"; +import Blob "mo:core/Blob"; +import Iter "mo:core/Iter"; +import List "mo:core/pure/List"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; @@ -41,7 +41,7 @@ module { ), ), func(chars : List) : Candid { - let blob = Blob.fromArray(Iter.toArray(Iter.fromList(chars))); + let blob = Blob.fromArray(List.toArray(chars)); #Blob(blob); }, ); diff --git a/src/Candid/Text/Parser/Bool.mo b/src/Candid/Text/Parser/Bool.mo index 938f463..ff9cbdd 100644 --- a/src/Candid/Text/Parser/Bool.mo +++ b/src/Candid/Text/Parser/Bool.mo @@ -1,4 +1,4 @@ -import List "mo:base@0.16.0/List"; +import List "mo:core/pure/List"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; diff --git a/src/Candid/Text/Parser/Common.mo b/src/Candid/Text/Parser/Common.mo index d1649de..43ba218 100644 --- a/src/Candid/Text/Parser/Common.mo +++ b/src/Candid/Text/Parser/Common.mo @@ -1,8 +1,8 @@ -import Char "mo:base@0.16.0/Char"; -import Iter "mo:base@0.16.0/Iter"; -import List "mo:base@0.16.0/List"; -import Nat32 "mo:base@0.16.0/Nat32"; -import Text "mo:base@0.16.0/Text"; +import Char "mo:core/Char"; +import Iter "mo:core/Iter"; +import List "mo:core/pure/List"; +import Nat32 "mo:core/Nat32"; +import Text "mo:core/Text"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; @@ -65,7 +65,7 @@ module { parserAs, func(as : List) : Parser> { if (cond(a, as)) { - P.result>(List.push(a, as)); + P.result>(List.pushFront(as, a)); } else { P.zero(); }; @@ -86,7 +86,7 @@ module { return NatX.from32To8(digit); }; - if (Char.isUppercase(char)) { + if (char >= 'A' and char <= 'Z') { let digit = charCode - Char.toNat32('A') + 10; return NatX.from32To8(digit); @@ -99,7 +99,7 @@ module { }; public func toText(chars : List) : Text { - let iter = Iter.fromList(chars); + let iter = List.values(chars); Text.fromIter(iter); }; diff --git a/src/Candid/Text/Parser/Float.mo b/src/Candid/Text/Parser/Float.mo index 948d5b7..cd8cf5e 100644 --- a/src/Candid/Text/Parser/Float.mo +++ b/src/Candid/Text/Parser/Float.mo @@ -1,5 +1,5 @@ -import Float "mo:base@0.16.0/Float"; -import List "mo:base@0.16.0/List"; +import Float "mo:core/Float"; +import List "mo:core/pure/List"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; diff --git a/src/Candid/Text/Parser/Int.mo b/src/Candid/Text/Parser/Int.mo index 54b3fba..8fb0310 100644 --- a/src/Candid/Text/Parser/Int.mo +++ b/src/Candid/Text/Parser/Int.mo @@ -1,5 +1,5 @@ -import Int "mo:base@0.16.0/Int"; -import List "mo:base@0.16.0/List"; +import Int "mo:core/Int"; +import List "mo:core/pure/List"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; diff --git a/src/Candid/Text/Parser/IntX.mo b/src/Candid/Text/Parser/IntX.mo index 0d14469..dab399e 100644 --- a/src/Candid/Text/Parser/IntX.mo +++ b/src/Candid/Text/Parser/IntX.mo @@ -1,9 +1,10 @@ -import Debug "mo:base@0.16.0/Debug"; -import List "mo:base@0.16.0/List"; -import Int8 "mo:base@0.16.0/Int8"; -import Int16 "mo:base@0.16.0/Int16"; -import Int32 "mo:base@0.16.0/Int32"; -import Int64 "mo:base@0.16.0/Int64"; +import Debug "mo:core/Debug"; +import Runtime "mo:core/Runtime"; +import List "mo:core/pure/List"; +import Int8 "mo:core/Int8"; +import Int16 "mo:core/Int16"; +import Int32 "mo:core/Int32"; +import Int64 "mo:core/Int64"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; @@ -28,7 +29,7 @@ module { case ("int16") #Int16(Int16.fromInt(int)); case ("int32") #Int32(Int32.fromInt(int)); case ("int64") #Int64(Int64.fromInt(int)); - case (_) Debug.trap("Only int8, int16, int32, int64 int bit types but got '" # intType # "'"); + case (_) Runtime.trap("Only int8, int16, int32, int64 int bit types but got '" # intType # "'"); }; }, ); diff --git a/src/Candid/Text/Parser/Nat.mo b/src/Candid/Text/Parser/Nat.mo index 6df94a2..e8a006d 100644 --- a/src/Candid/Text/Parser/Nat.mo +++ b/src/Candid/Text/Parser/Nat.mo @@ -1,6 +1,6 @@ -import Iter "mo:base@0.16.0/Iter"; -import List "mo:base@0.16.0/List"; -import Nat64 "mo:base@0.16.0/Nat64"; +import Iter "mo:core/Iter"; +import List "mo:core/pure/List"; +import Nat64 "mo:core/Nat64"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; @@ -50,7 +50,7 @@ module { func(chars : List) : Nat { var n : Nat64 = 0; - for (hex in Iter.fromList(chars)) { + for (hex in List.values(chars)) { n := (n << 4) + NatX.from8To64(fromHex(hex)); }; diff --git a/src/Candid/Text/Parser/NatX.mo b/src/Candid/Text/Parser/NatX.mo index a1a0f41..76922ec 100644 --- a/src/Candid/Text/Parser/NatX.mo +++ b/src/Candid/Text/Parser/NatX.mo @@ -1,9 +1,10 @@ -import Debug "mo:base@0.16.0/Debug"; -import List "mo:base@0.16.0/List"; -import Nat8 "mo:base@0.16.0/Nat8"; -import Nat16 "mo:base@0.16.0/Nat16"; -import Nat32 "mo:base@0.16.0/Nat32"; -import Nat64 "mo:base@0.16.0/Nat64"; +import Debug "mo:core/Debug"; +import Runtime "mo:core/Runtime"; +import List "mo:core/pure/List"; +import Nat8 "mo:core/Nat8"; +import Nat16 "mo:core/Nat16"; +import Nat32 "mo:core/Nat32"; +import Nat64 "mo:core/Nat64"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; @@ -28,7 +29,7 @@ module { case ("nat16") #Nat16(Nat16.fromNat(nat)); case ("nat32") #Nat32(Nat32.fromNat(nat)); case ("nat64") #Nat64(Nat64.fromNat(nat)); - case (_) Debug.trap("Only nat8, nat16, nat32, nat64 nat bit types but got '" # natType # "'"); + case (_) Runtime.trap("Only nat8, nat16, nat32, nat64 nat bit types but got '" # natType # "'"); }; }, ); diff --git a/src/Candid/Text/Parser/Option.mo b/src/Candid/Text/Parser/Option.mo index cf3cc94..ba3f5d9 100644 --- a/src/Candid/Text/Parser/Option.mo +++ b/src/Candid/Text/Parser/Option.mo @@ -1,4 +1,4 @@ -import List "mo:base@0.16.0/List"; +import List "mo:core/pure/List"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; diff --git a/src/Candid/Text/Parser/Principal.mo b/src/Candid/Text/Parser/Principal.mo index 2dbf0ee..d66caed 100644 --- a/src/Candid/Text/Parser/Principal.mo +++ b/src/Candid/Text/Parser/Principal.mo @@ -1,5 +1,5 @@ -import List "mo:base@0.16.0/List"; -import Principal "mo:base@0.16.0/Principal"; +import List "mo:core/pure/List"; +import Principal "mo:core/Principal"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; diff --git a/src/Candid/Text/Parser/Record.mo b/src/Candid/Text/Parser/Record.mo index bae290d..d9bee38 100644 --- a/src/Candid/Text/Parser/Record.mo +++ b/src/Candid/Text/Parser/Record.mo @@ -1,5 +1,5 @@ -import Iter "mo:base@0.16.0/Iter"; -import List "mo:base@0.16.0/List"; +import Iter "mo:core/Iter"; +import List "mo:core/pure/List"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; @@ -36,7 +36,7 @@ module { ), ), func(xs : List<(Text, Candid)>) : Candid { - let records = Iter.toArray(Iter.fromList(xs)); + let records = List.toArray(xs); #Record(records); }, ); diff --git a/src/Candid/Text/Parser/Text.mo b/src/Candid/Text/Parser/Text.mo index 58e96bb..10358b1 100644 --- a/src/Candid/Text/Parser/Text.mo +++ b/src/Candid/Text/Parser/Text.mo @@ -1,7 +1,7 @@ -import Char "mo:base@0.16.0/Char"; -import Iter "mo:base@0.16.0/Iter"; -import List "mo:base@0.16.0/List"; -import Text "mo:base@0.16.0/Text"; +import Char "mo:core/Char"; +import Iter "mo:core/Iter"; +import List "mo:core/pure/List"; +import Text "mo:core/Text"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; @@ -31,7 +31,7 @@ module { C.String.string("\""), ), func(chars : List) : Text { - Text.fromIter(Iter.fromList(chars)); + Text.fromIter(List.values(chars)); }, ); }; diff --git a/src/Candid/Text/Parser/Variant.mo b/src/Candid/Text/Parser/Variant.mo index bc9195a..a174709 100644 --- a/src/Candid/Text/Parser/Variant.mo +++ b/src/Candid/Text/Parser/Variant.mo @@ -1,4 +1,4 @@ -import List "mo:base@0.16.0/List"; +import List "mo:core/pure/List"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; diff --git a/src/Candid/Text/Parser/lib.mo b/src/Candid/Text/Parser/lib.mo index ae904e9..3543946 100644 --- a/src/Candid/Text/Parser/lib.mo +++ b/src/Candid/Text/Parser/lib.mo @@ -1,8 +1,8 @@ -import Char "mo:base@0.16.0/Char"; -import Debug "mo:base@0.16.0/Debug"; -import Iter "mo:base@0.16.0/Iter"; -import List "mo:base@0.16.0/List"; -import TrieMap "mo:base@0.16.0/TrieMap"; +import Char "mo:core/Char"; +import Debug "mo:core/Debug"; +import Runtime "mo:core/Runtime"; +import Iter "mo:core/Iter"; +import List "mo:core/pure/List"; import C "../../../../submodules/parser-combinators.mo/src/Combinators"; import P "../../../../submodules/parser-combinators.mo/src/Parser"; @@ -28,16 +28,15 @@ import { variantParser } "Variant"; module CandidParser { type Candid = Candid.Candid; type List = List.List; - type TrieMap = TrieMap.TrieMap; type Parser = P.Parser; public func parse(text : Text) : [Candid] { - let chars = Iter.toList(text.chars()); + let chars = List.fromIter(text.chars()); switch (parseCandid(chars)) { case (?candid) candid; - case (null) Debug.trap("Failed to parse Candid text from input: " # debug_show (chars)); + case (null) Runtime.trap("Failed to parse Candid text from input: " # debug_show (chars)); }; }; diff --git a/src/Candid/Text/ToText.mo b/src/Candid/Text/ToText.mo index f945c1a..9691287 100644 --- a/src/Candid/Text/ToText.mo +++ b/src/Candid/Text/ToText.mo @@ -1,8 +1,7 @@ -import Float "mo:base@0.16.0/Float"; -import Array "mo:base@0.16.0/Array"; -import Text "mo:base@0.16.0/Text"; -import Principal "mo:base@0.16.0/Principal"; -import TrieMap "mo:base@0.16.0/TrieMap"; +import Float "mo:core/Float"; +import Array "mo:core/Array"; +import Text "mo:core/Text"; +import Principal "mo:core/Principal"; import Itertools "mo:itertools@0.2.2/Iter"; @@ -12,7 +11,6 @@ import U "../../Utils"; module { type Candid = CandidType.Candid; - type TrieMap = TrieMap.TrieMap; public func toText(candid_values : [Candid]) : Text { var text = ""; @@ -48,7 +46,7 @@ module { case (#Int32(n)) addBrackets(U.stripStart(removeUnderscore(debug_show (n)), #char '+') # " : int32"); case (#Int64(n)) addBrackets(U.stripStart(removeUnderscore(debug_show (n)), #char '+') # " : int64"); - case (#Float(n)) Float.format(#exact, n); + case (#Float(n)) Float.format(n, #exact); case (#Null) "null"; case (#Empty) "()"; diff --git a/src/Candid/lib.mo b/src/Candid/lib.mo index 8e95e55..82b8c9f 100644 --- a/src/Candid/lib.mo +++ b/src/Candid/lib.mo @@ -1,8 +1,8 @@ /// A representation of the Candid format with variants for all possible types. -import Array "mo:base@0.16.0/Array"; -import Text "mo:base@0.16.0/Text"; -import Map "mo:map@9.0.1/Map"; +import Array "mo:core/Array"; +import Text "mo:core/Text"; +import PureMap "mo:core/pure/Map"; import CandidEncoder "Blob/Encoder"; import Decoder "Blob/Decoder"; @@ -18,7 +18,6 @@ import Utils "../Utils"; import ICRC3Value "ICRC3Value"; module { - let { thash } = Map; /// A representation of the Candid format with variants for all possible types. public type Candid = T.Candid; @@ -50,12 +49,12 @@ module { /// Additionally, all fields that have a name mapping added as a 'renameKeys' option should add the mapping to the function or rename the keys in the Candid type before passing it to the encoder/decoder /// Failure to do so will result in unexpected behavior public func formatCandidType(c : [CandidType], opt_rename_keys : ?[(Text, Text)]) : [CandidType] { - let renaming_map = Map.new(); + var renaming_map = PureMap.empty(); switch (opt_rename_keys) { case (?rename_keys) { for ((prev, new) in rename_keys.vals()) { - ignore Map.put(renaming_map, thash, prev, new); + renaming_map := PureMap.add(renaming_map, Text.compare, prev, new); }; }; case (_) {}; diff --git a/src/JSON/FromText.mo b/src/JSON/FromText.mo index 815821c..034b77e 100644 --- a/src/JSON/FromText.mo +++ b/src/JSON/FromText.mo @@ -1,7 +1,7 @@ -import Array "mo:base@0.16.0/Array"; -import Result "mo:base@0.16.0/Result"; -import Text "mo:base@0.16.0/Text"; -import Int "mo:base@0.16.0/Int"; +import Array "mo:core/Array"; +import Result "mo:core/Result"; +import Text "mo:core/Text"; +import Int "mo:core/Int"; import JSON "../../submodules/json.mo/src/JSON"; diff --git a/src/JSON/ToText.mo b/src/JSON/ToText.mo index d70e9ff..089496b 100644 --- a/src/JSON/ToText.mo +++ b/src/JSON/ToText.mo @@ -1,6 +1,5 @@ -import Buffer "mo:base@0.16.0/Buffer"; -import Result "mo:base@0.16.0/Result"; -import Text "mo:base@0.16.0/Text"; +import Result "mo:core/Result"; +import Text "mo:core/Text"; import JSON "../../submodules/json.mo/src/JSON"; import NatX "mo:xtended-numbers/NatX"; @@ -15,6 +14,8 @@ module { type Candid = Candid.Candid; type Result = Result.Result; + let { Buffer } = Utils; + /// Converts serialized Candid blob to JSON text public func toText(blob : Blob, keys : [Text], options : ?CandidType.Options) : Result { let decoded_res = Candid.decode(blob, keys, options); diff --git a/src/UrlEncoded/FromText.mo b/src/UrlEncoded/FromText.mo index ae759c1..590ddcb 100644 --- a/src/UrlEncoded/FromText.mo +++ b/src/UrlEncoded/FromText.mo @@ -1,14 +1,14 @@ -import Array "mo:base@0.16.0/Array"; -import Blob "mo:base@0.16.0/Blob"; -import Buffer "mo:base@0.16.0/Buffer"; -import Char "mo:base@0.16.0/Char"; -import Debug "mo:base@0.16.0/Debug"; -import Result "mo:base@0.16.0/Result"; -import TrieMap "mo:base@0.16.0/TrieMap"; -import Nat "mo:base@0.16.0/Nat"; -import Text "mo:base@0.16.0/Text"; -import Iter "mo:base@0.16.0/Iter"; -import Option "mo:base@0.16.0/Option"; +import Array "mo:core/Array"; +import Blob "mo:core/Blob"; +import Char "mo:core/Char"; +import Debug "mo:core/Debug"; +import Runtime "mo:core/Runtime"; +import Result "mo:core/Result"; +import PureMap "mo:core/pure/Map"; +import Nat "mo:core/Nat"; +import Text "mo:core/Text"; +import Iter "mo:core/Iter"; +import Option "mo:core/Option"; import Itertools "mo:itertools@0.2.2/Iter"; @@ -19,23 +19,23 @@ import U "../Utils"; import Utils "../Utils"; module { - let { subText } = U; + let { subText; Buffer } = U; type Candid = Candid.Candid; - type Buffer = Buffer.Buffer; + type Buffer = Utils.Buffer.Buffer; type Iter = Iter.Iter; - type TrieMap = TrieMap.TrieMap; + type Map = PureMap.Map; type Result = Result.Result; - type TextOrTrieMap = { + type TextOrMap = { #text : Text; - #triemap : TrieMap; + #map : Map; }; - type NestedTrieMap = TrieMap; + type NestedMap = Map; - func newMap() : NestedTrieMap = TrieMap.TrieMap(Text.equal, Text.hash); + func newMap() : NestedMap = PureMap.empty(); /// Converts a Url-Encoded Text to a serialized Candid Record public func fromText(text : Text, options : ?T.Options) : Result { @@ -47,11 +47,11 @@ module { /// Converts a Url-Encoded Text to a Candid Record public func toCandid(text : Text, options : T.Options) : Result { - let triemap_res = entriesToTrieMap(text, options); + let map_res = entriesToMap(text, options); - let #ok(triemap) = triemap_res else return Utils.send_error(triemap_res); + let #ok(map) = map_res else return Utils.send_error(map_res); - trieMapToCandid(triemap, options); + mapToCandid(map, options); }; // Converting entries from UrlSearchParams @@ -65,32 +65,32 @@ module { // 'settings[language]=en' // // -------------------------------------------------- - // Into a nested TrieMap + // Into a nested Map // -------------------------------------------------- - // TrieMap { - // 'users' => TrieMap { - // '0' => TrieMap { + // Map { + // 'users' => Map { + // '0' => Map { // 'name' => 'peter', // 'age' => '20', // }, - // '1' => TrieMap { + // '1' => Map { // 'name' => 'john', // 'age' => '30', // }, // }, - // 'settings' => TrieMap { + // 'settings' => Map { // 'theme' => 'dark', // 'language' => 'en', // }, // } // -------------------------------------------------- - func entriesToTrieMap(text : Text, options : T.Options) : Result { + func entriesToMap(text : Text, options : T.Options) : Result { let entries : [Text] = Array.sort( Iter.toArray(Text.split(text, #char '&')), Text.compare, ); - let triemap : NestedTrieMap = newMap(); + var map : NestedMap = newMap(); for (entry in entries.vals()) { let entry_iter = Text.split(entry, #char '='); @@ -127,33 +127,39 @@ module { #text "][", ); - let res = insert(triemap, first_field, other_fields, value); - let #ok(_) = res else return Utils.send_error(res); + let res = insert(map, first_field, other_fields, value); + switch (res) { + case (#ok(newMap)) { map := newMap }; + case (#err(msg)) return #err(msg); + }; }; case (_) { - let res = insert(triemap, key, Itertools.empty(), value); - let #ok(_) = res else return Utils.send_error(res); + let res = insert(map, key, Itertools.empty(), value); + switch (res) { + case (#ok(newMap)) { map := newMap }; + case (#err(msg)) return #err(msg); + }; }; }; }; - #ok(triemap); + #ok(map); }; - // Convert from a nested TrieMap + // Convert from a nested Map // -------------------------------------------------- - // TrieMap { - // 'users' => TrieMap { - // '0' => TrieMap { + // Map { + // 'users' => Map { + // '0' => Map { // 'name' => 'peter', // 'age' => '20', // }, - // '1' => TrieMap { + // '1' => Map { // 'name' => 'john', // 'age' => '30', // }, // }, - // 'settings' => TrieMap { + // 'settings' => Map { // 'theme' => 'dark', // 'language' => 'en', // }, @@ -179,10 +185,10 @@ module { // } // -------------------------------------------------- - func trieMapToCandid(triemap : NestedTrieMap, options : T.Options) : Result { + func mapToCandid(map : NestedMap, options : T.Options) : Result { var i = 0; let isArray = Itertools.all( - Iter.sort(triemap.keys(), Text.compare), + Iter.sort(PureMap.keys(map), Text.compare), func(key : Text) : Bool { let res = key == Nat.toText(i); i += 1; @@ -191,22 +197,22 @@ module { ); if (isArray) { - let buffer = Buffer.Buffer(triemap.size()); + let buffer = Buffer.Buffer(PureMap.size(map)); - for (i in Itertools.range(0, triemap.size())) { + for (i in Itertools.range(0, PureMap.size(map))) { - switch (triemap.get(Nat.toText(i))) { + switch (PureMap.get(map, Text.compare, Nat.toText(i))) { case (?(#text(text))) { let candid = parseValue(text); buffer.add(candid); }; - case (?(#triemap(map))) { - let res = trieMapToCandid(map, options); + case (?(#map(nestedMap))) { + let res = mapToCandid(nestedMap, options); let #ok(candid) = res else return Utils.send_error(res); buffer.add(candid); }; - case (_) Debug.trap("Array might be improperly formatted"); + case (_) Runtime.trap("Array might be improperly formatted"); }; }; @@ -216,10 +222,10 @@ module { }; // check if single value is a variant - if (triemap.size() == 1) { - let (variant_key, value) = switch (triemap.entries().next()) { + if (PureMap.size(map) == 1) { + let (variant_key, value) = switch (PureMap.entries(map).next()) { case (?(k, v)) { (k, v) }; - case (_) { Debug.trap("Variant might be improperly formatted") }; + case (_) { Runtime.trap("Variant might be improperly formatted") }; }; let isVariant = Text.startsWith(variant_key, #text "#"); @@ -229,7 +235,7 @@ module { let value_res = switch (value) { case (#text(text)) #ok(parseValue(text)); - case (#triemap(map)) trieMapToCandid(map, options); + case (#map(nestedMap)) mapToCandid(nestedMap, options); }; let #ok(val) = value_res else return Utils.send_error(value_res); @@ -238,16 +244,16 @@ module { }; }; - let buffer = Buffer.Buffer<(Text, Candid)>(triemap.size()); + let buffer = Buffer.Buffer<(Text, Candid)>(PureMap.size(map)); - for ((key, field) in triemap.entries()) { + for ((key, field) in PureMap.entries(map)) { switch (field) { case (#text(text)) { let candid = parseValue(text); buffer.add((key, candid)); }; - case (#triemap(map)) { - let res = trieMapToCandid(map, options); + case (#map(nestedMap)) { + let res = mapToCandid(nestedMap, options); let #ok(candid) = res else return Utils.send_error(res); buffer.add((key, candid)); }; @@ -260,32 +266,37 @@ module { #ok(#Record(records)); }; - // Inserts a key value pair from UrlSearchParams into a nested TrieMap - func insert(map : NestedTrieMap, field : Text, fields_iter : Iter, value : Text) : Result<(), Text> { + // Inserts a key value pair from UrlSearchParams into a nested Map + func insert(map : NestedMap, field : Text, fields_iter : Iter, value : Text) : Result { let next_field = switch (fields_iter.next()) { case (?_field) _field; case (_) { - map.put(field, #text(value)); - return #ok(); + let newMap = PureMap.add(map, Text.compare, field, #text(value)); + return #ok(newMap); }; }; - let nestedTriemap = switch (map.get(field)) { + let nestedMap = switch (PureMap.get(map, Text.compare, field)) { case (?val) { switch (val) { case (#text(prevValue)) { return #err("field name '" # field # "' cannot have multiple values: '" # prevValue # "' and '" # value # "'"); }; - case (#triemap(nestedTriemap)) nestedTriemap; + case (#map(nestedMap)) nestedMap; }; }; case (_) { - let nestedTriemap = newMap(); - map.put(field, #triemap(nestedTriemap)); - nestedTriemap; + newMap(); }; }; - insert(nestedTriemap, next_field, fields_iter, value); + let updatedNestedRes = insert(nestedMap, next_field, fields_iter, value); + switch (updatedNestedRes) { + case (#ok(updatedNested)) { + let newMap = PureMap.add(map, Text.compare, field, #map(updatedNested)); + #ok(newMap); + }; + case (#err(msg)) #err(msg); + }; }; }; diff --git a/src/UrlEncoded/Parser.mo b/src/UrlEncoded/Parser.mo index 9bac115..1fd46e3 100644 --- a/src/UrlEncoded/Parser.mo +++ b/src/UrlEncoded/Parser.mo @@ -1,8 +1,8 @@ -import Char "mo:base@0.16.0/Char"; -import Iter "mo:base@0.16.0/Iter"; -import Float "mo:base@0.16.0/Float"; -import List "mo:base@0.16.0/List"; -import Nat32 "mo:base@0.16.0/Nat32"; +import Char "mo:core/Char"; +import Iter "mo:core/Iter"; +import Float "mo:core/Float"; +import List "mo:core/pure/List"; +import Nat32 "mo:core/Nat32"; import C "../../submodules/parser-combinators.mo/src/Combinators"; import P "../../submodules/parser-combinators.mo/src/Parser"; @@ -36,7 +36,7 @@ module { case (t) t; }; - let list = Iter.toList(t.chars()); + let list = List.fromIter(t.chars()); // todo: parse Principal switch (parseCharList(list)) { @@ -141,7 +141,7 @@ module { C.many(C.Character.digit()), func(first_digit : Char, digits : List) : Bool { - let size_eq_1 = switch (List.pop(digits)) { + let size_eq_1 = switch (List.popFront(digits)) { case ((_, xs)) xs == null; }; @@ -190,7 +190,7 @@ module { parserAs, func(as : List) : Parser> { if (cond(a, as)) { - P.result>(List.push(a, as)); + P.result>(List.pushFront(as, a)); } else { P.zero(); }; diff --git a/src/UrlEncoded/ToText.mo b/src/UrlEncoded/ToText.mo index 73a18b8..da32a85 100644 --- a/src/UrlEncoded/ToText.mo +++ b/src/UrlEncoded/ToText.mo @@ -1,12 +1,13 @@ -import Result "mo:base@0.16.0/Result"; -import Nat "mo:base@0.16.0/Nat"; -import Nat32 "mo:base@0.16.0/Nat32"; -import Text "mo:base@0.16.0/Text"; -import TrieMap "mo:base@0.16.0/TrieMap"; -import Iter "mo:base@0.16.0/Iter"; -import Float "mo:base@0.16.0/Float"; -import Principal "mo:base@0.16.0/Principal"; -import Debug "mo:base@0.16.0/Debug"; +import Result "mo:core/Result"; +import Nat "mo:core/Nat"; +import Nat32 "mo:core/Nat32"; +import Text "mo:core/Text"; +import PureMap "mo:core/pure/Map"; +import Iter "mo:core/Iter"; +import Float "mo:core/Float"; +import Principal "mo:core/Principal"; +import Debug "mo:core/Debug"; +import Runtime "mo:core/Runtime"; import itertools "mo:itertools@0.2.2/Iter"; @@ -17,7 +18,7 @@ import CandidType "../Candid/Types"; module { type Candid = Candid.Candid; - type TrieMap = TrieMap.TrieMap; + type Map = PureMap.Map; type Result = Result.Result; /// Converts a serialized Candid blob to a URL-Encoded string. @@ -35,16 +36,16 @@ module { case (_) return #err("invalid type: the value must be a record"); }; - let pairs = TrieMap.TrieMap(Text.equal, Text.hash); + var pairs = PureMap.empty(); for ((key, value) in records.vals()) { - toKeyValuePairs(pairs, key, value); + pairs := toKeyValuePairs(pairs, key, value); }; var url_encoding = ""; let entries = Iter.map( - pairs.entries(), + PureMap.entries(pairs), func((key, value) : (Text, Text)) : Text { key # "=" # value; }, @@ -62,23 +63,27 @@ module { }; func toKeyValuePairs( - pairs : TrieMap, + pairs : Map, storedKey : Text, candid : Candid, - ) { + ) : Map { switch (candid) { case (#Array(arr)) { + var result = pairs; for ((i, value) in itertools.enumerate(arr.vals())) { let array_key = storedKey # "[" # Nat.toText(i) # "]"; - toKeyValuePairs(pairs, array_key, value); + result := toKeyValuePairs(result, array_key, value); }; + result; }; case (#Record(records) or #Map(records)) { + var result = pairs; for ((key, value) in records.vals()) { let record_key = storedKey # "[" # key # "]"; - toKeyValuePairs(pairs, record_key, value); + result := toKeyValuePairs(result, record_key, value); }; + result; }; case (#Variant(key, val)) { @@ -87,31 +92,31 @@ module { }; // TODO: convert blob to hex - // case (#Blob(blob)) pairs.put(storedKey, "todo: Blob.toText(blob)"); + // case (#Blob(blob)) PureMap.add(pairs, Text.compare, storedKey, "todo: Blob.toText(blob)"); case (#Option(p)) toKeyValuePairs(pairs, storedKey, p); - case (#Text(t)) pairs.put(storedKey, t); - case (#Principal(p)) pairs.put(storedKey, Principal.toText(p)); + case (#Text(t)) PureMap.add(pairs, Text.compare, storedKey, t); + case (#Principal(p)) PureMap.add(pairs, Text.compare, storedKey, Principal.toText(p)); - case (#Nat(n)) pairs.put(storedKey, Nat.toText(n)); - case (#Nat8(n)) pairs.put(storedKey, debug_show (n)); - case (#Nat16(n)) pairs.put(storedKey, debug_show (n)); - case (#Nat32(n)) pairs.put(storedKey, Nat32.toText(n)); - case (#Nat64(n)) pairs.put(storedKey, debug_show (n)); + case (#Nat(n)) PureMap.add(pairs, Text.compare, storedKey, Nat.toText(n)); + case (#Nat8(n)) PureMap.add(pairs, Text.compare, storedKey, debug_show (n)); + case (#Nat16(n)) PureMap.add(pairs, Text.compare, storedKey, debug_show (n)); + case (#Nat32(n)) PureMap.add(pairs, Text.compare, storedKey, Nat32.toText(n)); + case (#Nat64(n)) PureMap.add(pairs, Text.compare, storedKey, debug_show (n)); - case (#Int(n)) pairs.put(storedKey, U.stripStart(debug_show (n), #char '+')); - case (#Int8(n)) pairs.put(storedKey, U.stripStart(debug_show (n), #char '+')); - case (#Int16(n)) pairs.put(storedKey, U.stripStart(debug_show (n), #char '+')); - case (#Int32(n)) pairs.put(storedKey, U.stripStart(debug_show (n), #char '+')); - case (#Int64(n)) pairs.put(storedKey, U.stripStart(debug_show (n), #char '+')); + case (#Int(n)) PureMap.add(pairs, Text.compare, storedKey, U.stripStart(debug_show (n), #char '+')); + case (#Int8(n)) PureMap.add(pairs, Text.compare, storedKey, U.stripStart(debug_show (n), #char '+')); + case (#Int16(n)) PureMap.add(pairs, Text.compare, storedKey, U.stripStart(debug_show (n), #char '+')); + case (#Int32(n)) PureMap.add(pairs, Text.compare, storedKey, U.stripStart(debug_show (n), #char '+')); + case (#Int64(n)) PureMap.add(pairs, Text.compare, storedKey, U.stripStart(debug_show (n), #char '+')); - case (#Float(n)) pairs.put(storedKey, Float.toText(n)); - case (#Null) pairs.put(storedKey, "null"); - case (#Empty) pairs.put(storedKey, ""); + case (#Float(n)) PureMap.add(pairs, Text.compare, storedKey, Float.toText(n)); + case (#Null) PureMap.add(pairs, Text.compare, storedKey, "null"); + case (#Empty) PureMap.add(pairs, Text.compare, storedKey, ""); - case (#Bool(b)) pairs.put(storedKey, debug_show (b)); + case (#Bool(b)) PureMap.add(pairs, Text.compare, storedKey, debug_show (b)); - case (_) Debug.trap(debug_show candid # " is not supported by URL-Encoded"); + case (_) Runtime.trap(debug_show candid # " is not supported by URL-Encoded"); }; }; diff --git a/src/Utils.mo b/src/Utils.mo index 2cd57d5..bdd547e 100644 --- a/src/Utils.mo +++ b/src/Utils.mo @@ -1,41 +1,30 @@ -import Array "mo:base@0.16.0/Array"; -import Char "mo:base@0.16.0/Char"; -import Order "mo:base@0.16.0/Order"; -import Float "mo:base@0.16.0/Float"; -import Text "mo:base@0.16.0/Text"; -import Iter "mo:base@0.16.0/Iter"; -import Nat64 "mo:base@0.16.0/Nat64"; -import Nat32 "mo:base@0.16.0/Nat32"; -import Nat8 "mo:base@0.16.0/Nat8"; -import Int "mo:base@0.16.0/Int"; -import Buffer "mo:base@0.16.0/Buffer"; -import Result "mo:base@0.16.0/Result"; -import Int64 "mo:base@0.16.0/Int64"; -import Blob "mo:base@0.16.0/Blob"; - -import Prelude "mo:base@0.16.0/Prelude"; -import Debug "mo:base@0.16.0/Debug"; +import Array "mo:core/Array"; +import Char "mo:core/Char"; +import Order "mo:core/Order"; +import VarArray "mo:core/VarArray"; +import Float "mo:core/Float"; +import Text "mo:core/Text"; +import Iter "mo:core/Iter"; +import Nat64 "mo:core/Nat64"; +import Nat32 "mo:core/Nat32"; +import Nat8 "mo:core/Nat8"; +import Int "mo:core/Int"; +import List "mo:core/List"; +import Result "mo:core/Result"; +import Int64 "mo:core/Int64"; +import Blob "mo:core/Blob"; +import Debug "mo:core/Debug"; +import Runtime "mo:core/Runtime"; import Itertools "mo:itertools@0.2.2/Iter"; -import Map "mo:map@9.0.1/Map"; -import MapConst "mo:map@9.0.1/Map/const"; import ByteUtils "mo:byte-utils@0.1.2"; module { type Iter = Iter.Iter; - type Buffer = Buffer.Buffer; + type List = List.List; type Result = Result.Result; - public func create_map(map_size : Nat) : Map.Map = [ - var ?( - Array.init(map_size, null), - Array.init(map_size, null), - Array.init(map_size * 2, MapConst.NULL), - Array.init(3, 0), - ) - ]; - /// Function copied from mo:candid/Tag: https://github.com/edjCase/motoko_candid/blob/d038b7bd953fb8826ae66a5f34bf06dcc29b2e0f/src/Tag.mo#L14-L30 /// /// Computes the hash of a given record field key. @@ -93,7 +82,7 @@ module { func(i : Nat) { switch (iter.next()) { case (?x) x; - case (_) Prelude.unreachable(); + case (_) Runtime.unreachable(); }; }, ); @@ -101,7 +90,7 @@ module { public func send_error(res : Result) : Result { switch (res) { - case (#ok(_)) Prelude.unreachable(); + case (#ok(_)) Runtime.unreachable(); case (#err(errorMsg)) #err(errorMsg); }; }; @@ -216,14 +205,14 @@ module { // }; public class ReusableBuffer(init_capacity : Nat) { - var elems : [var ?A] = Array.init(init_capacity, null); + var elems : [var ?A] = VarArray.repeat(null, init_capacity); var count : Nat = 0; public func size() : Nat = count; public func add(elem : A) { if (count == elems.size()) { - elems := Array.tabulateVar( + elems := VarArray.tabulate( elems.size() * 2, func(i : Nat) : ?A { if (i < count) { @@ -246,12 +235,12 @@ module { public func get(i : Nat) : A { switch (elems[i]) { case (?elem) elem; - case (null) Debug.trap "Index out of bounds"; + case (null) Runtime.trap "Index out of bounds"; }; }; public func put(i : Nat, elem : A) { - if (i >= count) Debug.trap "Index out of bounds"; + if (i >= count) Runtime.trap "Index out of bounds"; elems[i] := ?elem; }; @@ -272,4 +261,56 @@ module { }; }; + /// Wrapper class that provides a Buffer-like interface around mo:core/List + public class ListBuffer() { + let list = List.empty(); + + public func size() : Nat = List.size(list); + + public func add(elem : A) = List.add(list, elem); + + public func clear() = List.clear(list); + + public func get(i : Nat) : A { + switch (List.get(list, i)) { + case (?elem) elem; + case (null) Runtime.trap "Index out of bounds"; + }; + }; + + public func put(i : Nat, elem : A) = List.put(list, i, elem); + + public func vals() : Iter.Iter = List.values(list); + + public func toArray() : [A] = List.toArray(list); + + public func removeLast() : ?A = List.removeLast(list); + }; + + /// Buffer module that provides a compatible API with mo:base/Buffer but uses mo:core/List + public module Buffer { + public type Buffer = ListBuffer; + + public func Buffer(initCapacity : Nat) : ListBuffer = ListBuffer(); + + public func toArray(buffer : ListBuffer) : [A] = buffer.toArray(); + + public func fromArray(arr : [A]) : ListBuffer { + let buf = ListBuffer(); + for (elem in arr.vals()) { + buf.add(elem); + }; + buf; + }; + + public func last(buffer : ListBuffer) : ?A { + let s = buffer.size(); + if (s == 0) { + null; + } else { + ?buffer.get(s - 1); + }; + }; + }; + }; diff --git a/src/libs/motoko_candid/utils.mo b/src/libs/motoko_candid/utils.mo index ce707d9..e24efff 100644 --- a/src/libs/motoko_candid/utils.mo +++ b/src/libs/motoko_candid/utils.mo @@ -1,26 +1,25 @@ -import Array "mo:base@0.16.0/Array"; -import Blob "mo:base@0.16.0/Blob"; -import Buffer "mo:base@0.16.0/Buffer"; -import Debug "mo:base@0.16.0/Debug"; -import Result "mo:base@0.16.0/Result"; -import Nat64 "mo:base@0.16.0/Nat64"; -import Int8 "mo:base@0.16.0/Int8"; -import Int32 "mo:base@0.16.0/Int32"; -import Nat8 "mo:base@0.16.0/Nat8"; -import Nat32 "mo:base@0.16.0/Nat32"; -import Nat16 "mo:base@0.16.0/Nat16"; -import Int64 "mo:base@0.16.0/Int64"; -import Nat "mo:base@0.16.0/Nat"; -import Int "mo:base@0.16.0/Int"; -import Iter "mo:base@0.16.0/Iter"; -import Prelude "mo:base@0.16.0/Prelude"; -import Principal "mo:base@0.16.0/Principal"; -import Text "mo:base@0.16.0/Text"; -import Order "mo:base@0.16.0/Order"; -import Func "mo:base@0.16.0/Func"; -import Char "mo:base@0.16.0/Char"; -import TrieMap "mo:base@0.16.0/TrieMap"; -import Int16 "mo:base@0.16.0/Int16"; +import Array "mo:core/Array"; +import Blob "mo:core/Blob"; +import Debug "mo:core/Debug"; +import Runtime "mo:core/Runtime"; +import Result "mo:core/Result"; +import Nat64 "mo:core/Nat64"; +import Int8 "mo:core/Int8"; +import Int32 "mo:core/Int32"; +import Nat8 "mo:core/Nat8"; +import Nat32 "mo:core/Nat32"; +import Nat16 "mo:core/Nat16"; +import Int64 "mo:core/Int64"; +import Nat "mo:core/Nat"; +import Int "mo:core/Int"; +import Iter "mo:core/Iter"; +import Principal "mo:core/Principal"; +import Text "mo:core/Text"; +import Order "mo:core/Order"; +import Func "mo:core/Func"; +import Char "mo:core/Char"; +import PureMap "mo:core/pure/Map"; +import Int16 "mo:core/Int16"; import Arg "mo:candid/Arg"; import Value "mo:candid/Value"; @@ -28,7 +27,6 @@ import Type "mo:candid/Type"; import Tag "mo:candid/Tag"; import Itertools "mo:itertools@0.2.2/Iter"; import PeekableIter "mo:itertools@0.2.2/PeekableIter"; -import Map "mo:map@9.0.1/Map"; import FloatX "mo:xtended-numbers/FloatX"; import T "../../Candid/Types"; @@ -42,17 +40,19 @@ module { type Value = Value.Value; type RecordFieldType = Type.RecordFieldType; type RecordFieldValue = Value.RecordFieldValue; - type TrieMap = TrieMap.TrieMap; + type PureMap = PureMap.Map; type Result = Result.Result; - type Buffer = Buffer.Buffer; + type Buffer = Utils.Buffer.Buffer; type Iter = Iter.Iter; type Hash = Nat32; - type Map = Map.Map; type Order = Order.Order; type Candid = T.Candid; type CandidType = T.CandidType; type KeyValuePair = T.KeyValuePair; + + let { Buffer } = Utils; + public func toArgType(candid : CandidType) : (Type.Type) { let (arg_type) : (Type.Type) = switch (candid) { case (#Nat) (#nat); @@ -103,11 +103,11 @@ module { ) ); case (unsupported) { - Debug.trap("toArgeType(): Unsupported type " # debug_show unsupported); + Runtime.trap("toArgType(): Unsupported type " # debug_show unsupported); }; }; }; - public func toArgs(candid_values : [Candid], renaming_map : TrieMap) : Result<[Arg], Text> { + public func toArgs(candid_values : [Candid], renaming_map : PureMap) : Result<[Arg], Text> { let buffer = Buffer.Buffer(candid_values.size()); for (candid in candid_values.vals()) { @@ -150,7 +150,7 @@ module { type InternalType = Type.PrimitiveType or InternalCompoundType; - func toArgTypeAndValue(candid : Candid, renaming_map : TrieMap) : (InternalType, Value) { + func toArgTypeAndValue(candid : Candid, renaming_map : PureMap) : (InternalType, Value) { let (arg_type, arg_value) : (InternalType, Value) = switch (candid) { case (#Nat(n)) (#nat, #nat(n)); case (#Nat8(n)) (#nat8, #nat8(n)); @@ -498,7 +498,7 @@ module { func order_types_by_height_bfs(rows : Buffer<[InternalTypeNode]>) { label while_loop while (rows.size() > 0) { - let candid_values = Buffer.last(rows) else return Prelude.unreachable(); + let ?candid_values = Buffer.last(rows) else return Runtime.unreachable(); let buffer = Buffer.Buffer(8); var has_compound_type = false; @@ -571,8 +571,8 @@ module { }; }; - func get_renamed_key(renaming_map : TrieMap, key : Text) : Text { - switch (renaming_map.get(key)) { + func get_renamed_key(renaming_map : PureMap, key : Text) : Text { + switch (PureMap.get(renaming_map, Text.compare, key)) { case (?v) v; case (_) key; }; diff --git a/submodules/parser-combinators.mo/src/Combinators.mo b/submodules/parser-combinators.mo/src/Combinators.mo index f8ed147..0dcd2ef 100644 --- a/submodules/parser-combinators.mo/src/Combinators.mo +++ b/submodules/parser-combinators.mo/src/Combinators.mo @@ -1,8 +1,8 @@ -import Char "mo:base@0.7.3/Char"; -import Iter "mo:base@0.7.3/Iter"; -import List "mo:base@0.7.3/List"; -import Nat32 "mo:base@0.7.3/Nat32"; -import Text "mo:base@0.7.3/Text"; +import Char "mo:core/Char"; +import Iter "mo:core/Iter"; +import List "mo:core/pure/List"; +import Nat32 "mo:core/Nat32"; +import Text "mo:core/Text"; import P "Parser"; import L "List"; @@ -129,7 +129,7 @@ module { bind( parserAs, func(as : List) : Parser> { - P.result>(List.push(a, as)); + P.result>(List.pushFront(as, a)); }, ); }, @@ -149,12 +149,12 @@ module { bind( many(parserA), func(as : List) : Parser> { - P.result>(List.push(a, as)); + P.result>(List.pushFront(as, a)); }, ); }, ), - P.result>(List.nil()), + P.result>(List.empty()), ); }; @@ -199,7 +199,7 @@ module { ) : Parser> { choose( sepBy1(parserA, parserB), - P.result>(List.nil()), + P.result>(List.empty()), ); }; @@ -222,7 +222,7 @@ module { n : Nat, ) : Parser> { if (0 < n) { cons(parserA, count(parserA, n - 1 : Nat)) } else { - P.result(List.nil()); + P.result(List.empty()); }; }; diff --git a/submodules/parser-combinators.mo/src/List.mo b/submodules/parser-combinators.mo/src/List.mo index 8eec63d..8c972ed 100644 --- a/submodules/parser-combinators.mo/src/List.mo +++ b/submodules/parser-combinators.mo/src/List.mo @@ -1,5 +1,5 @@ -import Iter "mo:base@0.7.3/Iter"; -import List "mo:base@0.7.3/List"; +import Iter "mo:core/Iter"; +import List "mo:core/pure/List"; module { private type List = List.List; diff --git a/submodules/parser-combinators.mo/src/Parser.mo b/submodules/parser-combinators.mo/src/Parser.mo index 229e983..1716368 100644 --- a/submodules/parser-combinators.mo/src/Parser.mo +++ b/submodules/parser-combinators.mo/src/Parser.mo @@ -1,4 +1,4 @@ -import List "mo:base@0.7.3/List"; +import List "mo:core/pure/List"; module Parser { private type List = List.List; diff --git a/tests/CBOR.Test.mo b/tests/CBOR.Test.mo index a6112d1..99ee805 100644 --- a/tests/CBOR.Test.mo +++ b/tests/CBOR.Test.mo @@ -1,10 +1,9 @@ // @testmode wasi -import Array "mo:base@0.16.0/Array"; -import Blob "mo:base@0.16.0/Blob"; -import Debug "mo:base@0.16.0/Debug"; -import Iter "mo:base@0.16.0/Iter"; -import Principal "mo:base@0.16.0/Principal"; -import Text "mo:base@0.16.0/Text"; +import Array "mo:core/Array"; +import Blob "mo:core/Blob"; +import Debug "mo:core/Debug"; +import Principal "mo:core/Principal"; +import Text "mo:core/Text"; import { test; suite } "mo:test"; @@ -96,7 +95,7 @@ suite( let self_describe_tag : Blob = "\D9\D9\F7"; - func blob_concat(b1 : Blob, b2 : Blob) : Blob = Blob.fromArray(Array.append(Blob.toArray(b1), Blob.toArray(b2))); + func blob_concat(b1 : Blob, b2 : Blob) : Blob = Blob.fromArray(Array.concat(Blob.toArray(b1), Blob.toArray(b2))); func sdt(blob : Blob) : Blob = blob_concat(self_describe_tag, blob); func strip(text : Text, to_strip : Text) : Text = Text.replace(text, #text(to_strip), ""); diff --git a/tests/Candid.Large.test.mo b/tests/Candid.Large.test.mo index de578b3..af600d1 100644 --- a/tests/Candid.Large.test.mo +++ b/tests/Candid.Large.test.mo @@ -1,10 +1,9 @@ // @testmode wasi -import Iter "mo:base@0.16.0/Iter"; -import Debug "mo:base@0.16.0/Debug"; -import Prelude "mo:base@0.16.0/Prelude"; -import Text "mo:base@0.16.0/Text"; -import Char "mo:base@0.16.0/Char"; -import Buffer "mo:base@0.16.0/Buffer"; +import Iter "mo:core/Iter"; +import Text "mo:core/Text"; +import Char "mo:core/Char"; + +import Utils "../src/Utils"; import Fuzz "mo:fuzz"; import Itertools "mo:itertools@0.2.2/Iter"; @@ -157,11 +156,11 @@ func new_item() : StoreItem { let store_item_keys = ["name", "store", "customer_reviews", "username", "rating", "comment", "available_sizes", "xs", "s", "m", "l", "xl", "color_options", "name", "hex", "price", "in_stock", "address", "contact", "email", "phone"]; -let candid_buffer = Buffer.Buffer<[Serde.Candid]>(limit); -let store_items = Buffer.Buffer(limit); +let candid_buffer = Utils.Buffer.Buffer<[Serde.Candid]>(limit); +let store_items = Utils.Buffer.Buffer(limit); -let candid_buffer_with_types = Buffer.Buffer<[Serde.Candid]>(limit); -let store_items_with_types = Buffer.Buffer(limit); +let candid_buffer_with_types = Utils.Buffer.Buffer<[Serde.Candid]>(limit); +let store_items_with_types = Utils.Buffer.Buffer(limit); suite( "Serde.Candid", diff --git a/tests/Candid.Test.mo b/tests/Candid.Test.mo index 616f059..b687f0e 100644 --- a/tests/Candid.Test.mo +++ b/tests/Candid.Test.mo @@ -1,10 +1,10 @@ // @testmode wasi -import Blob "mo:base@0.16.0/Blob"; -import Debug "mo:base@0.16.0/Debug"; -import Iter "mo:base@0.16.0/Iter"; -import Nat "mo:base@0.16.0/Nat"; -import Principal "mo:base@0.16.0/Principal"; -import Result "mo:base@0.16.0/Result"; +import Blob "mo:core/Blob"; +import Debug "mo:core/Debug"; +import Iter "mo:core/Iter"; +import Nat "mo:core/Nat"; +import Principal "mo:core/Principal"; +import Result "mo:core/Result"; import { test; suite } "mo:test"; diff --git a/tests/CandidTestUtils.mo b/tests/CandidTestUtils.mo index fa34b0f..209756d 100644 --- a/tests/CandidTestUtils.mo +++ b/tests/CandidTestUtils.mo @@ -1,11 +1,11 @@ // @testmode wasi -import Blob "mo:base@0.16.0/Blob"; -import Debug "mo:base@0.16.0/Debug"; -import Iter "mo:base@0.16.0/Iter"; -import Nat "mo:base@0.16.0/Nat"; -import Principal "mo:base@0.16.0/Principal"; -import Result "mo:base@0.16.0/Result"; -import Option "mo:base@0.16.0/Option"; +import Blob "mo:core/Blob"; +import Debug "mo:core/Debug"; +import Iter "mo:core/Iter"; +import Nat "mo:core/Nat"; +import Principal "mo:core/Principal"; +import Result "mo:core/Result"; +import Option "mo:core/Option"; import { test; suite } "mo:test"; diff --git a/tests/ICRC3.Test.mo b/tests/ICRC3.Test.mo index 7191567..c93a2c5 100644 --- a/tests/ICRC3.Test.mo +++ b/tests/ICRC3.Test.mo @@ -1,10 +1,10 @@ // @testmode wasi -import Array "mo:base@0.16.0/Array"; -import Blob "mo:base@0.16.0/Blob"; -import Debug "mo:base@0.16.0/Debug"; -import Iter "mo:base@0.16.0/Iter"; -import Principal "mo:base@0.16.0/Principal"; -import Text "mo:base@0.16.0/Text"; +import Array "mo:core/Array"; +import Blob "mo:core/Blob"; +import Debug "mo:core/Debug"; +import Iter "mo:core/Iter"; +import Principal "mo:core/Principal"; +import Text "mo:core/Text"; import { test; suite } "mo:test"; diff --git a/tests/JSON.Test.mo b/tests/JSON.Test.mo index d51d726..5ad6919 100644 --- a/tests/JSON.Test.mo +++ b/tests/JSON.Test.mo @@ -1,8 +1,5 @@ // @testmode wasi -import Blob "mo:base@0.16.0/Blob"; -import Debug "mo:base@0.16.0/Debug"; -import Iter "mo:base@0.16.0/Iter"; -import Nat "mo:base@0.16.0/Nat"; +import Debug "mo:core/Debug"; import { test; suite } "mo:test"; diff --git a/tests/PrimitiveType.Test.mo b/tests/PrimitiveType.Test.mo index 6b9e2ef..de5fc9f 100644 --- a/tests/PrimitiveType.Test.mo +++ b/tests/PrimitiveType.Test.mo @@ -1,9 +1,10 @@ // @testmode wasi -import Blob "mo:base@0.16.0/Blob"; -import Debug "mo:base@0.16.0/Debug"; -import Iter "mo:base@0.16.0/Iter"; -import Nat "mo:base@0.16.0/Nat"; -import Principal "mo:base@0.16.0/Principal"; +import Array "mo:core/Array"; +import Blob "mo:core/Blob"; +import Debug "mo:core/Debug"; +import Iter "mo:core/Iter"; +import Nat "mo:core/Nat"; +import Principal "mo:core/Principal"; import { test; suite } "mo:test"; @@ -25,7 +26,7 @@ suite( test( "Int", func() { - for (_ in Iter.range(1, limit)) { + for (_ in Nat.range(0, limit)) { let int : Int = fuzz.int.randomRange(-(2 ** 63), (2 ** 63) - 1); let candid_encoding = to_candid (int); @@ -49,7 +50,7 @@ suite( test( "Nat8", func() { - for (_ in Iter.range(1, limit)) { + for (_ in Nat.range(0, limit)) { let nat8 : Nat8 = fuzz.nat8.random(); let candid_encoding = to_candid (nat8); @@ -71,7 +72,7 @@ suite( test( "Nat16", func() { - for (_ in Iter.range(1, limit)) { + for (_ in Nat.range(0, limit)) { let nat16 : Nat16 = fuzz.nat16.random(); let candid_encoding = to_candid (nat16); @@ -93,7 +94,7 @@ suite( test( "Nat32", func() { - for (_ in Iter.range(1, limit)) { + for (_ in Nat.range(0, limit)) { let nat32 : Nat32 = fuzz.nat32.random(); let candid_encoding = to_candid (nat32); @@ -115,7 +116,7 @@ suite( test( "Nat64", func() { - for (_ in Iter.range(1, limit)) { + for (_ in Nat.range(0, limit)) { let nat64 : Nat64 = fuzz.nat64.random(); let candid_encoding = to_candid (nat64); @@ -137,7 +138,7 @@ suite( test( "Int8", func() { - for (_ in Iter.range(1, limit)) { + for (_ in Nat.range(0, limit)) { let int8 : Int8 = fuzz.int8.random(); let candid_encoding = to_candid (int8); @@ -159,7 +160,7 @@ suite( test( "Int16", func() { - for (_ in Iter.range(1, limit)) { + for (_ in Nat.range(0, limit)) { let int16 : Int16 = fuzz.int16.random(); let candid_encoding = to_candid (int16); @@ -181,7 +182,7 @@ suite( test( "Int32", func() { - for (_ in Iter.range(1, limit)) { + for (_ in Nat.range(0, limit)) { let int32 : Int32 = fuzz.int32.random(); let candid_encoding = to_candid (int32); @@ -203,7 +204,7 @@ suite( test( "Int64", func() { - for (_ in Iter.range(1, limit)) { + for (_ in Nat.range(0, limit)) { let int64 : Int64 = fuzz.int64.random(); let candid_encoding = to_candid (int64); @@ -225,7 +226,7 @@ suite( test( "Text", func() { - for (_ in Iter.range(1, limit)) { + for (_ in Nat.range(0, limit)) { let text : Text = fuzz.text.randomAlphanumeric(fuzz.nat.randomRange(0, 20)); let candid_encoding = to_candid (text); @@ -247,7 +248,7 @@ suite( test( "Principal", func() { - for (_ in Iter.range(1, limit)) { + for (_ in Nat.range(0, limit)) { let principal : Principal = fuzz.principal.randomPrincipal(29); let candid_encoding = to_candid (principal); @@ -269,7 +270,7 @@ suite( test( "Blob", func() { - for (_ in Iter.range(1, limit)) { + for (_ in Nat.range(0, limit)) { let blob : Blob = fuzz.blob.randomBlob(fuzz.nat.randomRange(0, 20)); let candid_encoding = to_candid (blob); diff --git a/tests/RepIndyHash.Test.mo b/tests/RepIndyHash.Test.mo index d4a1267..d4b296c 100644 --- a/tests/RepIndyHash.Test.mo +++ b/tests/RepIndyHash.Test.mo @@ -1,5 +1,4 @@ -import Blob "mo:base@0.16.0/Blob"; -import Debug "mo:base@0.16.0/Debug"; +import Blob "mo:core/Blob"; import { test; suite } "mo:test"; diff --git a/tests/Stress.test.mo b/tests/Stress.test.mo index 7ee83b0..71dd864 100644 --- a/tests/Stress.test.mo +++ b/tests/Stress.test.mo @@ -1,11 +1,11 @@ // @testmode wasi -import Iter "mo:base@0.16.0/Iter"; -import Debug "mo:base@0.16.0/Debug"; -import Prelude "mo:base@0.16.0/Prelude"; -import Text "mo:base@0.16.0/Text"; -import Char "mo:base@0.16.0/Char"; -import Buffer "mo:base@0.16.0/Buffer"; -import Nat64 "mo:base@0.16.0/Nat64"; +import Iter "mo:core/Iter"; +import Debug "mo:core/Debug"; +import Text "mo:core/Text"; +import Char "mo:core/Char"; +import Nat64 "mo:core/Nat64"; + +import Utils "../src/Utils"; import Fuzz "mo:fuzz"; import Itertools "mo:itertools@0.2.2/Iter"; @@ -176,11 +176,11 @@ func new_item() : StoreItem { let store_item_keys = ["name", "store", "customer_reviews", "username", "rating", "comment", "available_sizes", "xs", "s", "m", "l", "xl", "color_options", "name", "hex", "price", "in_stock", "address", "contact", "email", "phone"]; -let candid_buffer = Buffer.Buffer<[Serde.Candid]>(limit); -let store_items = Buffer.Buffer(limit); +let candid_buffer = Utils.Buffer.Buffer<[Serde.Candid]>(limit); +let store_items = Utils.Buffer.Buffer(limit); -let candid_buffer_with_types = Buffer.Buffer<[Serde.Candid]>(limit); -let store_items_with_types = Buffer.Buffer(limit); +let candid_buffer_with_types = Utils.Buffer.Buffer<[Serde.Candid]>(limit); +let store_items_with_types = Utils.Buffer.Buffer(limit); // Roundtrip test function that takes a schema, value generator, and comparison function func roundtripTest( @@ -191,8 +191,8 @@ func roundtripTest( keys : [Text], iterations : Nat, ) : () { - let values = Buffer.Buffer(iterations); - let candid_values = Buffer.Buffer<[Serde.Candid]>(iterations); + let values = Utils.Buffer.Buffer(iterations); + let candid_values = Utils.Buffer.Buffer<[Serde.Candid]>(iterations); // Phase 1: Generate values and decode them to Candid for (i in Itertools.range(0, iterations)) { diff --git a/tests/UrlEncoded.Test.mo b/tests/UrlEncoded.Test.mo index 3adc0c5..a93247c 100644 --- a/tests/UrlEncoded.Test.mo +++ b/tests/UrlEncoded.Test.mo @@ -1,6 +1,7 @@ // @testmode wasi -import Debug "mo:base@0.16.0/Debug"; -import Iter "mo:base@0.16.0/Iter"; +import Debug "mo:core/Debug"; +import Runtime "mo:core/Runtime"; +import Iter "mo:core/Iter"; import { test; suite } "mo:test"; @@ -23,7 +24,7 @@ suite( let blob = switch (UrlEncoded.fromText("msg=Hello World&name=John", null)) { case (#ok(b)) b; - case (#err(errorMsg)) Debug.trap(errorMsg); + case (#err(errorMsg)) Runtime.trap(errorMsg); }; let res : ?User = from_candid (blob); @@ -168,7 +169,7 @@ suite( let blob = to_candid (info); let text = UrlEncoded.toText(blob, ["name", "msg"], null); Debug.print("single record: " #debug_show (text)); - assert (text == #ok("msg=Hello World&name=John")); + assert (text == #ok("name=John&msg=Hello World")); }, ); test( @@ -192,7 +193,7 @@ suite( Debug.print("record with array: " #debug_show (text)); assert ( - text == #ok("users[0][msg]=Hello World&users[0][name]=John&users[1][msg]=testing&users[1][name]=Jane") + text == #ok("users[1][name]=Jane&users[1][msg]=testing&users[0][name]=John&users[0][msg]=Hello World") ); }, ); diff --git a/tests/one-shot.backward-reference.test.mo b/tests/one-shot.backward-reference.test.mo index 8c5b68e..7061392 100755 --- a/tests/one-shot.backward-reference.test.mo +++ b/tests/one-shot.backward-reference.test.mo @@ -1,10 +1,10 @@ -import Array "mo:base@0.16.0/Array"; -import Blob "mo:base@0.16.0/Blob"; -import Debug "mo:base@0.16.0/Debug"; -import Iter "mo:base@0.16.0/Iter"; -import Principal "mo:base@0.16.0/Principal"; -import Text "mo:base@0.16.0/Text"; -import TrieMap "mo:base@0.16.0/TrieMap"; +import Array "mo:core/Array"; +import Blob "mo:core/Blob"; +import Debug "mo:core/Debug"; +import Iter "mo:core/Iter"; +import Principal "mo:core/Principal"; +import Text "mo:core/Text"; +import PureMap "mo:core/pure/Map"; import Arg "mo:candid/Arg"; import Decoder "mo:candid/Decoder"; @@ -20,7 +20,7 @@ import { toArgs; toArgType } "../src/libs/motoko_candid/utils"; type CandidType = Candid.CandidType; -let empty_map = TrieMap.TrieMap(Text.equal, Text.hash); +let empty_map = PureMap.empty(); func validate_encoding(candid_values : [Candid.Candid]) : Bool { Debug.print("candid_values: " # debug_show candid_values); diff --git a/tests/one-shot.forward-reference.mo b/tests/one-shot.forward-reference.mo index 699f3f5..c350f0b 100755 --- a/tests/one-shot.forward-reference.mo +++ b/tests/one-shot.forward-reference.mo @@ -1,12 +1,12 @@ // @testmode wasi -import Array "mo:base@0.16.0/Array"; -import Blob "mo:base@0.16.0/Blob"; -import Debug "mo:base@0.16.0/Debug"; -import Iter "mo:base@0.16.0/Iter"; -import Principal "mo:base@0.16.0/Principal"; -import Text "mo:base@0.16.0/Text"; -import TrieMap "mo:base@0.16.0/TrieMap"; -import Option "mo:base@0.16.0/Option"; +import Array "mo:core/Array"; +import Blob "mo:core/Blob"; +import Debug "mo:core/Debug"; +import Iter "mo:core/Iter"; +import Principal "mo:core/Principal"; +import Text "mo:core/Text"; +import PureMap "mo:core/pure/Map"; +import Option "mo:core/Option"; import Arg "mo:candid/Arg"; import Decoder "mo:candid/Decoder"; @@ -22,7 +22,7 @@ type CandidType = Candid.CandidType; let { toArgs } = CandidEncoder; -let empty_map = TrieMap.TrieMap(Text.equal, Text.hash); +let empty_map = PureMap.empty(); func validate_encoding(candid_values : [Candid.Candid]) : Bool { let #ok(encoded) = CandidEncoder.one_shot(candid_values, null);